Commit 73a8f5f7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jeff Layton

locks: purge fl_owner_t from fs/locks.c

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
parent 17fa388d
...@@ -325,7 +325,7 @@ static int flock_make_lock(struct file *filp, struct file_lock **lock, ...@@ -325,7 +325,7 @@ static int flock_make_lock(struct file *filp, struct file_lock **lock,
return -ENOMEM; return -ENOMEM;
fl->fl_file = filp; fl->fl_file = filp;
fl->fl_owner = (fl_owner_t)filp; fl->fl_owner = filp;
fl->fl_pid = current->tgid; fl->fl_pid = current->tgid;
fl->fl_flags = FL_FLOCK; fl->fl_flags = FL_FLOCK;
fl->fl_type = type; fl->fl_type = type;
...@@ -431,7 +431,7 @@ static int lease_init(struct file *filp, long type, struct file_lock *fl) ...@@ -431,7 +431,7 @@ static int lease_init(struct file *filp, long type, struct file_lock *fl)
if (assign_type(fl, type) != 0) if (assign_type(fl, type) != 0)
return -EINVAL; return -EINVAL;
fl->fl_owner = (fl_owner_t)current->files; fl->fl_owner = current->files;
fl->fl_pid = current->tgid; fl->fl_pid = current->tgid;
fl->fl_file = filp; fl->fl_file = filp;
...@@ -1155,7 +1155,6 @@ EXPORT_SYMBOL(posix_lock_file_wait); ...@@ -1155,7 +1155,6 @@ EXPORT_SYMBOL(posix_lock_file_wait);
int locks_mandatory_locked(struct file *file) int locks_mandatory_locked(struct file *file)
{ {
struct inode *inode = file_inode(file); struct inode *inode = file_inode(file);
fl_owner_t owner = current->files;
struct file_lock *fl; struct file_lock *fl;
/* /*
...@@ -1165,7 +1164,8 @@ int locks_mandatory_locked(struct file *file) ...@@ -1165,7 +1164,8 @@ int locks_mandatory_locked(struct file *file)
for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) { for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) {
if (!IS_POSIX(fl)) if (!IS_POSIX(fl))
continue; continue;
if (fl->fl_owner != owner && fl->fl_owner != (fl_owner_t)file) if (fl->fl_owner != current->files &&
fl->fl_owner != file)
break; break;
} }
spin_unlock(&inode->i_lock); spin_unlock(&inode->i_lock);
...@@ -1205,7 +1205,7 @@ int locks_mandatory_area(int read_write, struct inode *inode, ...@@ -1205,7 +1205,7 @@ int locks_mandatory_area(int read_write, struct inode *inode,
for (;;) { for (;;) {
if (filp) { if (filp) {
fl.fl_owner = (fl_owner_t)filp; fl.fl_owner = filp;
fl.fl_flags &= ~FL_SLEEP; fl.fl_flags &= ~FL_SLEEP;
error = __posix_lock_file(inode, &fl, NULL); error = __posix_lock_file(inode, &fl, NULL);
if (!error) if (!error)
...@@ -1948,7 +1948,7 @@ int fcntl_getlk(struct file *filp, unsigned int cmd, struct flock __user *l) ...@@ -1948,7 +1948,7 @@ int fcntl_getlk(struct file *filp, unsigned int cmd, struct flock __user *l)
cmd = F_GETLK; cmd = F_GETLK;
file_lock.fl_flags |= FL_OFDLCK; file_lock.fl_flags |= FL_OFDLCK;
file_lock.fl_owner = (fl_owner_t)filp; file_lock.fl_owner = filp;
} }
error = vfs_test_lock(filp, &file_lock); error = vfs_test_lock(filp, &file_lock);
...@@ -2103,7 +2103,7 @@ int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd, ...@@ -2103,7 +2103,7 @@ int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd,
cmd = F_SETLK; cmd = F_SETLK;
file_lock->fl_flags |= FL_OFDLCK; file_lock->fl_flags |= FL_OFDLCK;
file_lock->fl_owner = (fl_owner_t)filp; file_lock->fl_owner = filp;
break; break;
case F_OFD_SETLKW: case F_OFD_SETLKW:
error = -EINVAL; error = -EINVAL;
...@@ -2112,7 +2112,7 @@ int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd, ...@@ -2112,7 +2112,7 @@ int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd,
cmd = F_SETLKW; cmd = F_SETLKW;
file_lock->fl_flags |= FL_OFDLCK; file_lock->fl_flags |= FL_OFDLCK;
file_lock->fl_owner = (fl_owner_t)filp; file_lock->fl_owner = filp;
/* Fallthrough */ /* Fallthrough */
case F_SETLKW: case F_SETLKW:
file_lock->fl_flags |= FL_SLEEP; file_lock->fl_flags |= FL_SLEEP;
...@@ -2170,7 +2170,7 @@ int fcntl_getlk64(struct file *filp, unsigned int cmd, struct flock64 __user *l) ...@@ -2170,7 +2170,7 @@ int fcntl_getlk64(struct file *filp, unsigned int cmd, struct flock64 __user *l)
cmd = F_GETLK64; cmd = F_GETLK64;
file_lock.fl_flags |= FL_OFDLCK; file_lock.fl_flags |= FL_OFDLCK;
file_lock.fl_owner = (fl_owner_t)filp; file_lock.fl_owner = filp;
} }
error = vfs_test_lock(filp, &file_lock); error = vfs_test_lock(filp, &file_lock);
...@@ -2242,7 +2242,7 @@ int fcntl_setlk64(unsigned int fd, struct file *filp, unsigned int cmd, ...@@ -2242,7 +2242,7 @@ int fcntl_setlk64(unsigned int fd, struct file *filp, unsigned int cmd,
cmd = F_SETLK64; cmd = F_SETLK64;
file_lock->fl_flags |= FL_OFDLCK; file_lock->fl_flags |= FL_OFDLCK;
file_lock->fl_owner = (fl_owner_t)filp; file_lock->fl_owner = filp;
break; break;
case F_OFD_SETLKW: case F_OFD_SETLKW:
error = -EINVAL; error = -EINVAL;
...@@ -2251,7 +2251,7 @@ int fcntl_setlk64(unsigned int fd, struct file *filp, unsigned int cmd, ...@@ -2251,7 +2251,7 @@ int fcntl_setlk64(unsigned int fd, struct file *filp, unsigned int cmd,
cmd = F_SETLKW64; cmd = F_SETLKW64;
file_lock->fl_flags |= FL_OFDLCK; file_lock->fl_flags |= FL_OFDLCK;
file_lock->fl_owner = (fl_owner_t)filp; file_lock->fl_owner = filp;
/* Fallthrough */ /* Fallthrough */
case F_SETLKW64: case F_SETLKW64:
file_lock->fl_flags |= FL_SLEEP; file_lock->fl_flags |= FL_SLEEP;
...@@ -2324,11 +2324,11 @@ void locks_remove_file(struct file *filp) ...@@ -2324,11 +2324,11 @@ void locks_remove_file(struct file *filp)
if (!inode->i_flock) if (!inode->i_flock)
return; return;
locks_remove_posix(filp, (fl_owner_t)filp); locks_remove_posix(filp, filp);
if (filp->f_op->flock) { if (filp->f_op->flock) {
struct file_lock fl = { struct file_lock fl = {
.fl_owner = (fl_owner_t)filp, .fl_owner = filp,
.fl_pid = current->tgid, .fl_pid = current->tgid,
.fl_file = filp, .fl_file = filp,
.fl_flags = FL_FLOCK, .fl_flags = FL_FLOCK,
......
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