All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: NeilBrown <neilb@suse.de>, Al Viro <viro@zeniv.linux.org.uk>,
	Daire Byrne <daire@dneg.com>,
	Trond Myklebust <trond.myklebust@hammerspace.com>,
	Chuck Lever <chuck.lever@oracle.com>
Cc: kbuild-all@lists.01.org,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 06/12] VFS: support concurrent renames.
Date: Tue, 14 Jun 2022 12:35:21 +0800	[thread overview]
Message-ID: <202206141215.dWJM11Ut-lkp@intel.com> (raw)
In-Reply-To: <165516230199.21248.18142980966152036732.stgit@noble.brown>

Hi NeilBrown,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.19-rc2 next-20220610]
[cannot apply to trondmy-nfs/linux-next viro-vfs/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/NeilBrown/Allow-concurrent-directory-updates/20220614-072355
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3
config: um-i386_defconfig (https://download.01.org/0day-ci/archive/20220614/202206141215.dWJM11Ut-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/46a2afd9f68f24a42f38f3a8afebafe7e494e9d8
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review NeilBrown/Allow-concurrent-directory-updates/20220614-072355
        git checkout 46a2afd9f68f24a42f38f3a8afebafe7e494e9d8
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=um SUBARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> fs/namei.c:3175:16: warning: no previous prototype for 'lock_rename_lookup_excl' [-Wmissing-prototypes]
    3175 | struct dentry *lock_rename_lookup_excl(struct dentry *p1, struct dentry *p2,
         |                ^~~~~~~~~~~~~~~~~~~~~~~


vim +/lock_rename_lookup_excl +3175 fs/namei.c

  3174	
> 3175	struct dentry *lock_rename_lookup_excl(struct dentry *p1, struct dentry *p2,
  3176					       struct dentry **d1p, struct dentry **d2p,
  3177					       struct qstr *last1, struct qstr *last2,
  3178					       unsigned int flags1, unsigned int flags2)
  3179	{
  3180		struct dentry *p;
  3181		struct dentry *d1, *d2;
  3182	
  3183		if (p1 == p2) {
  3184			inode_lock_nested(p1->d_inode, I_MUTEX_PARENT);
  3185			d1 = __lookup_hash(last1, p1, flags1, NULL);
  3186			if (IS_ERR(d1))
  3187				goto out_unlock_1;
  3188			d2 = __lookup_hash(last2, p2, flags2, NULL);
  3189			if (IS_ERR(d2))
  3190				goto out_unlock_2;
  3191			*d1p = d1; *d2p = d2;
  3192			return NULL;
  3193		out_unlock_2:
  3194			dput(d1);
  3195			d1 = d2;
  3196		out_unlock_1:
  3197			inode_unlock(p1->d_inode);
  3198			return d1;
  3199		}
  3200	
  3201		mutex_lock(&p1->d_sb->s_vfs_rename_mutex);
  3202	
  3203		if ((p = d_ancestor(p2, p1)) != NULL) {
  3204			inode_lock_nested(p2->d_inode, I_MUTEX_PARENT);
  3205			inode_lock_nested(p1->d_inode, I_MUTEX_CHILD);
  3206		} else if ((p = d_ancestor(p1, p2)) != NULL) {
  3207			inode_lock_nested(p1->d_inode, I_MUTEX_PARENT);
  3208			inode_lock_nested(p2->d_inode, I_MUTEX_CHILD);
  3209		} else {
  3210			inode_lock_nested(p1->d_inode, I_MUTEX_PARENT);
  3211			inode_lock_nested(p2->d_inode, I_MUTEX_PARENT2);
  3212		}
  3213		d1 = __lookup_hash(last1, p1, flags1, NULL);
  3214		if (IS_ERR(d1))
  3215			goto unlock_out_3;
  3216		d2 = __lookup_hash(last2, p2, flags2, NULL);
  3217		if (IS_ERR(d2))
  3218			goto unlock_out_4;
  3219	
  3220		*d1p = d1;
  3221		*d2p = d2;
  3222		return p;
  3223	unlock_out_4:
  3224		dput(d1);
  3225		d1 = d2;
  3226	unlock_out_3:
  3227		inode_unlock(p1->d_inode);
  3228		inode_unlock(p2->d_inode);
  3229		mutex_unlock(&p1->d_sb->s_vfs_rename_mutex);
  3230		return d1;
  3231	}
  3232	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  reply	other threads:[~2022-06-14  4:36 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13 23:18 [PATCH RFC 00/12] Allow concurrent directory updates NeilBrown
2022-06-13 23:18 ` [PATCH 04/12] VFS: move dput() and mnt_drop_write() into done_path_update() NeilBrown
2022-06-13 23:18 ` [PATCH 03/12] VFS: move want_write checks into lookup_hash_update() NeilBrown
2022-06-13 23:18 ` [PATCH 02/12] VFS: move EEXIST and ENOENT tests " NeilBrown
2022-06-13 23:18 ` [PATCH 01/12] VFS: support parallel updates in the one directory NeilBrown
2022-06-13 23:18 ` [PATCH 05/12] VFS: export done_path_update() NeilBrown
2022-06-13 23:18 ` [PATCH 08/12] nfsd: allow parallel creates from nfsd NeilBrown
2022-06-24 14:43   ` Chuck Lever III
2022-06-28 22:35   ` Chuck Lever III
2022-06-28 23:09     ` NeilBrown
2022-07-04 17:17       ` Chuck Lever III
2022-06-13 23:18 ` [PATCH 07/12] NFS: support parallel updates in the one directory NeilBrown
2022-06-13 23:18 ` [PATCH 11/12] nfsd: use (un)lock_inode instead of fh_(un)lock NeilBrown
2022-06-24 14:43   ` Chuck Lever III
2022-06-13 23:18 ` [PATCH 06/12] VFS: support concurrent renames NeilBrown
2022-06-14  4:35   ` kernel test robot [this message]
2022-06-14 12:37   ` kernel test robot
2022-06-14 13:28   ` kernel test robot
2022-06-26 13:07   ` [VFS] 46a2afd9f6: ltp.rename10.fail kernel test robot
2022-06-26 13:07     ` kernel test robot
2022-06-26 13:07     ` [LTP] " kernel test robot
2022-06-13 23:18 ` [PATCH 12/12] nfsd: discard fh_locked flag and fh_lock/fh_unlock NeilBrown
2022-06-24 14:43   ` Chuck Lever III
2022-06-13 23:18 ` [PATCH 10/12] nfsd: reduce locking in nfsd_lookup() NeilBrown
2022-06-24 14:43   ` Chuck Lever III
2022-06-13 23:18 ` [PATCH 09/12] nfsd: support concurrent renames NeilBrown
2022-06-24 14:43   ` Chuck Lever III
2022-06-15 13:46 ` [PATCH RFC 00/12] Allow concurrent directory updates Daire Byrne
2022-06-16  0:55   ` NeilBrown
2022-06-16 10:48     ` Daire Byrne
2022-06-17  5:49       ` NeilBrown
2022-06-17 15:27         ` Daire Byrne
2022-06-20 10:18           ` Daire Byrne
2022-06-16 13:49     ` Anna Schumaker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202206141215.dWJM11Ut-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=chuck.lever@oracle.com \
    --cc=daire@dneg.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=trond.myklebust@hammerspace.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.