Commit db3da180 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by David S. Miller

[PATCH] compat_flock: ia64

parent 0c1821db
...@@ -3017,38 +3017,6 @@ sys32_ptrace (int request, pid_t pid, unsigned int addr, unsigned int data, ...@@ -3017,38 +3017,6 @@ sys32_ptrace (int request, pid_t pid, unsigned int addr, unsigned int data,
return ret; return ret;
} }
static inline int
get_flock32(struct flock *kfl, struct flock32 *ufl)
{
int err;
if (!access_ok(VERIFY_READ, ufl, sizeof(*ufl)))
return -EFAULT;
err = __get_user(kfl->l_type, &ufl->l_type);
err |= __get_user(kfl->l_whence, &ufl->l_whence);
err |= __get_user(kfl->l_start, &ufl->l_start);
err |= __get_user(kfl->l_len, &ufl->l_len);
err |= __get_user(kfl->l_pid, &ufl->l_pid);
return err;
}
static inline int
put_flock32(struct flock *kfl, struct flock32 *ufl)
{
int err;
if (!access_ok(VERIFY_WRITE, ufl, sizeof(*ufl)))
return -EFAULT;
err = __put_user(kfl->l_type, &ufl->l_type);
err |= __put_user(kfl->l_whence, &ufl->l_whence);
err |= __put_user(kfl->l_start, &ufl->l_start);
err |= __put_user(kfl->l_len, &ufl->l_len);
err |= __put_user(kfl->l_pid, &ufl->l_pid);
return err;
}
extern asmlinkage long sys_fcntl (unsigned int fd, unsigned int cmd, unsigned long arg); extern asmlinkage long sys_fcntl (unsigned int fd, unsigned int cmd, unsigned long arg);
asmlinkage long asmlinkage long
...@@ -3062,13 +3030,13 @@ sys32_fcntl (unsigned int fd, unsigned int cmd, unsigned int arg) ...@@ -3062,13 +3030,13 @@ sys32_fcntl (unsigned int fd, unsigned int cmd, unsigned int arg)
case F_GETLK: case F_GETLK:
case F_SETLK: case F_SETLK:
case F_SETLKW: case F_SETLKW:
if (get_flock32(&f, (struct flock32 *) A(arg))) if (get_compat_flock(&f, (struct compat_flock *) A(arg)))
return -EFAULT; return -EFAULT;
old_fs = get_fs(); old_fs = get_fs();
set_fs(KERNEL_DS); set_fs(KERNEL_DS);
ret = sys_fcntl(fd, cmd, (unsigned long) &f); ret = sys_fcntl(fd, cmd, (unsigned long) &f);
set_fs(old_fs); set_fs(old_fs);
if (cmd == F_GETLK && put_flock32(&f, (struct flock32 *) A(arg))) if (cmd == F_GETLK && put_compat_flock(&f, (struct compat_flock *) A(arg)))
return -EFAULT; return -EFAULT;
return ret; return ret;
......
...@@ -53,4 +53,12 @@ struct compat_stat { ...@@ -53,4 +53,12 @@ struct compat_stat {
u32 __unused5; 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;
};
#endif /* _ASM_IA64_COMPAT_H */ #endif /* _ASM_IA64_COMPAT_H */
...@@ -29,15 +29,6 @@ typedef __kernel_fsid_t __kernel_fsid_t32; ...@@ -29,15 +29,6 @@ typedef __kernel_fsid_t __kernel_fsid_t32;
#define IA32_PAGE_ALIGN(addr) (((addr) + IA32_PAGE_SIZE - 1) & IA32_PAGE_MASK) #define IA32_PAGE_ALIGN(addr) (((addr) + IA32_PAGE_SIZE - 1) & IA32_PAGE_MASK)
#define IA32_CLOCKS_PER_SEC 100 /* Cast in stone for IA32 Linux */ #define IA32_CLOCKS_PER_SEC 100 /* Cast in stone for IA32 Linux */
/* fcntl.h */
struct flock32 {
short l_type;
short l_whence;
compat_off_t l_start;
compat_off_t l_len;
compat_pid_t l_pid;
};
#define F_GETLK64 12 #define F_GETLK64 12
#define F_SETLK64 13 #define F_SETLK64 13
#define F_SETLKW64 14 #define F_SETLKW64 14
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment