forked from Minki/linux
compat: consolidate the compat_flock{,64} definition
Provide a single common definition for the compat_flock and compat_flock64 structures using the same tricks as for the native variants. Another extra define is added for the packing required on x86. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Guo Ren <guoren@kernel.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Heiko Stuebner <heiko@sntech.de> Acked-by: Helge Deller <deller@gmx.de> # parisc Link: https://lore.kernel.org/r/20220405071314.3225832-4-guoren@kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
306f7cc1e9
commit
3ce0f2373f
@ -65,22 +65,6 @@ struct compat_stat {
|
||||
compat_ulong_t __unused4[2];
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_statfs {
|
||||
int f_type;
|
||||
int f_bsize;
|
||||
|
@ -55,23 +55,8 @@ struct compat_stat {
|
||||
s32 st_pad4[14];
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
s32 l_sysid;
|
||||
compat_pid_t l_pid;
|
||||
s32 pad[4];
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
#define __ARCH_COMPAT_FLOCK_EXTRA_SYSID s32 l_sysid;
|
||||
#define __ARCH_COMPAT_FLOCK_PAD s32 pad[4];
|
||||
|
||||
struct compat_statfs {
|
||||
int f_type;
|
||||
|
@ -53,22 +53,6 @@ struct compat_stat {
|
||||
u32 st_spare4[3];
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_statfs {
|
||||
s32 f_type;
|
||||
s32 f_bsize;
|
||||
|
@ -44,22 +44,6 @@ struct compat_stat {
|
||||
u32 __unused4[2];
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_statfs {
|
||||
int f_type;
|
||||
int f_bsize;
|
||||
|
@ -102,22 +102,6 @@ struct compat_stat {
|
||||
u32 __unused5;
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
struct compat_statfs {
|
||||
u32 f_type;
|
||||
u32 f_bsize;
|
||||
|
@ -75,23 +75,7 @@ struct compat_stat64 {
|
||||
unsigned int __unused5;
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
short __unused;
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
short __unused;
|
||||
};
|
||||
#define __ARCH_COMPAT_FLOCK_PAD short __unused;
|
||||
|
||||
struct compat_statfs {
|
||||
int f_type;
|
||||
|
@ -50,25 +50,11 @@ struct compat_stat {
|
||||
u32 __unused5;
|
||||
};
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
};
|
||||
|
||||
/*
|
||||
* IA32 uses 4 byte alignment for 64 bit quantities,
|
||||
* so we need to pack this structure.
|
||||
* IA32 uses 4 byte alignment for 64 bit quantities, so we need to pack the
|
||||
* compat flock64 structure.
|
||||
*/
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
} __attribute__((packed));
|
||||
#define __ARCH_NEED_COMPAT_FLOCK64_PACKED
|
||||
|
||||
struct compat_statfs {
|
||||
int f_type;
|
||||
|
@ -258,6 +258,37 @@ struct compat_rlimit {
|
||||
compat_ulong_t rlim_max;
|
||||
};
|
||||
|
||||
#ifdef __ARCH_NEED_COMPAT_FLOCK64_PACKED
|
||||
#define __ARCH_COMPAT_FLOCK64_PACK __attribute__((packed))
|
||||
#else
|
||||
#define __ARCH_COMPAT_FLOCK64_PACK
|
||||
#endif
|
||||
|
||||
struct compat_flock {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_off_t l_start;
|
||||
compat_off_t l_len;
|
||||
#ifdef __ARCH_COMPAT_FLOCK_EXTRA_SYSID
|
||||
__ARCH_COMPAT_FLOCK_EXTRA_SYSID
|
||||
#endif
|
||||
compat_pid_t l_pid;
|
||||
#ifdef __ARCH_COMPAT_FLOCK_PAD
|
||||
__ARCH_COMPAT_FLOCK_PAD
|
||||
#endif
|
||||
};
|
||||
|
||||
struct compat_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
compat_loff_t l_start;
|
||||
compat_loff_t l_len;
|
||||
compat_pid_t l_pid;
|
||||
#ifdef __ARCH_COMPAT_FLOCK64_PAD
|
||||
__ARCH_COMPAT_FLOCK64_PAD
|
||||
#endif
|
||||
} __ARCH_COMPAT_FLOCK64_PACK;
|
||||
|
||||
struct compat_rusage {
|
||||
struct old_timeval32 ru_utime;
|
||||
struct old_timeval32 ru_stime;
|
||||
|
Loading…
Reference in New Issue
Block a user