lkml.org 
[lkml]   [2022]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] nfs4: handle async processing of F_SETLK with FL_SLEEP
    Hi Vasily,

    url: https://github.com/0day-ci/linux/commits/Vasily-Averin/nfs4-handle-async-processing-of-F_SETLK-with-FL_SLEEP/20211227-184632
    base: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git linux-next
    config: i386-randconfig-m021-20211227 (https://download.01.org/0day-ci/archive/20211228/202112281638.RNX7e40X-lkp@intel.com/config)
    compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

    If you fix the issue, kindly add following tag as appropriate
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

    New smatch warnings:
    fs/nfs/nfs4proc.c:7202 _nfs4_proc_setlk() warn: should this be a bitwise op?

    vim +7202 fs/nfs/nfs4proc.c

    ^1da177e4c3f41 Linus Torvalds 2005-04-16 7194 static int _nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 7195 {
    19e03c570e6099 Trond Myklebust 2008-12-23 7196 struct nfs_inode *nfsi = NFS_I(state->inode);
    11476e9dec39d9 Chuck Lever 2016-04-11 7197 struct nfs4_state_owner *sp = state->owner;
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7198 unsigned char fl_flags = request->fl_flags;
    1ea67dbd982827 Jeff Layton 2016-09-17 7199 int status;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 7200
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7201 request->fl_flags |= FL_ACCESS;
    7ae55d384b2f33 Vasily Averin 2021-12-27 @7202 if ((request->fl_flags && FL_SLEEP) && IS_SETLK(cmd))
    ^^
    Same thing but for nfsv4.

    7ae55d384b2f33 Vasily Averin 2021-12-27 7203 status = posix_lock_file(request->fl_file, request, NULL);
    7ae55d384b2f33 Vasily Averin 2021-12-27 7204 else
    75575ddf29cbbf Jeff Layton 2016-09-17 7205 status = locks_lock_inode_wait(state->inode, request);
    7ae55d384b2f33 Vasily Averin 2021-12-27 7206 if (status)
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7207 goto out;
    11476e9dec39d9 Chuck Lever 2016-04-11 7208 mutex_lock(&sp->so_delegreturn_mutex);
    19e03c570e6099 Trond Myklebust 2008-12-23 7209 down_read(&nfsi->rwsem);
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7210 if (test_bit(NFS_DELEGATED_STATE, &state->flags)) {
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7211 /* Yes: cache locks! */
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7212 /* ...but avoid races with delegation recall... */
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7213 request->fl_flags = fl_flags & ~FL_SLEEP;
    75575ddf29cbbf Jeff Layton 2016-09-17 7214 status = locks_lock_inode_wait(state->inode, request);
    9a99af494bd714 Trond Myklebust 2013-02-04 7215 up_read(&nfsi->rwsem);
    11476e9dec39d9 Chuck Lever 2016-04-11 7216 mutex_unlock(&sp->so_delegreturn_mutex);
    9a99af494bd714 Trond Myklebust 2013-02-04 7217 goto out;
    9a99af494bd714 Trond Myklebust 2013-02-04 7218 }
    19e03c570e6099 Trond Myklebust 2008-12-23 7219 up_read(&nfsi->rwsem);
    11476e9dec39d9 Chuck Lever 2016-04-11 7220 mutex_unlock(&sp->so_delegreturn_mutex);
    c69899a17ca483 Trond Myklebust 2015-01-24 7221 status = _nfs4_do_setlk(state, cmd, request, NFS_LOCK_NEW);
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7222 out:
    01c3b861cd77b2 Trond Myklebust 2006-06-29 7223 request->fl_flags = fl_flags;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 7224 return status;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 7225 }

    ---
    0-DAY CI Kernel Test Service, Intel Corporation
    https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

    \
     
     \ /
      Last update: 2022-01-06 11:38    [W:2.470 / U:1.396 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site