lkml.org 
[lkml]   [2022]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 094/231] lockd: set fl_owner when unlocking files
    Date
    From: Jeff Layton <jlayton@kernel.org>

    [ Upstream commit aec158242b87a43d83322e99bc71ab4428e5ab79 ]

    Unlocking a POSIX lock on an inode with vfs_lock_file only works if
    the owner matches. Ensure we set it in the request.

    Cc: J. Bruce Fields <bfields@fieldses.org>
    Fixes: 7f024fcd5c97 ("Keep read and write fds with each nlm_file")
    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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;
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-07-19 15:01    [W:5.299 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site