Commit 8634b51f authored by Jeff Layton's avatar Jeff Layton Committed by Jeff Layton

locks: convert lease handling to file_lock_context

Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
Acked-by: default avatarChristoph Hellwig <hch@lst.de>
parent bd61e0a9
This diff is collapsed.
...@@ -969,6 +969,7 @@ struct file_lock { ...@@ -969,6 +969,7 @@ struct file_lock {
struct file_lock_context { struct file_lock_context {
struct list_head flc_flock; struct list_head flc_flock;
struct list_head flc_posix; struct list_head flc_posix;
struct list_head flc_lease;
}; };
/* The following constant reflects the upper bound of the file/locking space */ /* The following constant reflects the upper bound of the file/locking space */
...@@ -1990,7 +1991,7 @@ static inline int break_lease(struct inode *inode, unsigned int mode) ...@@ -1990,7 +1991,7 @@ static inline int break_lease(struct inode *inode, unsigned int mode)
* end up racing with tasks trying to set a new lease on this file. * end up racing with tasks trying to set a new lease on this file.
*/ */
smp_mb(); smp_mb();
if (inode->i_flock) if (inode->i_flctx && !list_empty_careful(&inode->i_flctx->flc_lease))
return __break_lease(inode, mode, FL_LEASE); return __break_lease(inode, mode, FL_LEASE);
return 0; return 0;
} }
...@@ -2003,7 +2004,7 @@ static inline int break_deleg(struct inode *inode, unsigned int mode) ...@@ -2003,7 +2004,7 @@ static inline int break_deleg(struct inode *inode, unsigned int mode)
* end up racing with tasks trying to set a new lease on this file. * end up racing with tasks trying to set a new lease on this file.
*/ */
smp_mb(); smp_mb();
if (inode->i_flock) if (inode->i_flctx && !list_empty_careful(&inode->i_flctx->flc_lease))
return __break_lease(inode, mode, FL_DELEG); return __break_lease(inode, mode, FL_DELEG);
return 0; return 0;
} }
......
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