locks: convert lease handling to file_lock_context
Signed-off-by: Jeff Layton <jlayton@primarydata.com> Acked-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -969,6 +969,7 @@ struct file_lock {
|
||||
struct file_lock_context {
|
||||
struct list_head flc_flock;
|
||||
struct list_head flc_posix;
|
||||
struct list_head flc_lease;
|
||||
};
|
||||
|
||||
/* 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)
|
||||
* end up racing with tasks trying to set a new lease on this file.
|
||||
*/
|
||||
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 0;
|
||||
}
|
||||
@@ -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.
|
||||
*/
|
||||
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 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user