Re: [PATCH 1/2] lockd: set fl_owner when unlocking files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2022-07-11 at 14:30 -0400, Jeff Layton wrote:
> Unlocking a POSIX inode with vfs_lock_file only works if the owner
> matches. Ensure we set it in the request.
> 

Oof, that description makes no sense. How about:

"Unlocking a POSIX lock on an inode with vfs_lock_file..."

> Cc: J. Bruce Fields <bfields@xxxxxxxxxxxx>
> Fixes: 7f024fcd5c97 ("Keep read and write fds with each nlm_file")
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  fs/lockd/svcsubs.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c
> index 0a22a2faf552..b2f277727469 100644
> --- a/fs/lockd/svcsubs.c
> +++ b/fs/lockd/svcsubs.c
> @@ -176,7 +176,7 @@ nlm_delete_file(struct nlm_file *file)
>  	}
>  }
>  
> -static int nlm_unlock_files(struct nlm_file *file)
> +static int nlm_unlock_files(struct nlm_file *file, fl_owner_t owner)
>  {
>  	struct file_lock lock;
>  
> @@ -184,6 +184,7 @@ static int nlm_unlock_files(struct nlm_file *file)
>  	lock.fl_type  = F_UNLCK;
>  	lock.fl_start = 0;
>  	lock.fl_end   = OFFSET_MAX;
> +	lock.fl_owner = owner;
>  	if (file->f_file[O_RDONLY] &&
>  	    vfs_lock_file(file->f_file[O_RDONLY], F_SETLK, &lock, NULL))
>  		goto out_err;
> @@ -225,7 +226,7 @@ nlm_traverse_locks(struct nlm_host *host, struct nlm_file *file,
>  		if (match(lockhost, host)) {
>  
>  			spin_unlock(&flctx->flc_lock);
> -			if (nlm_unlock_files(file))
> +			if (nlm_unlock_files(file, fl->fl_owner))
>  				return 1;
>  			goto again;
>  		}

-- 
Jeff Layton <jlayton@xxxxxxxxxx>




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux