All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 1665/2828] fs/dcache.c:3015 d_splice_alias_ops() warn: inconsistent returns '&inode->i_lock'.
@ 2025-06-16 14:03 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-06-16 14:03 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Al Viro <viro@zeniv.linux.org.uk>
CC: Christian Brauner <brauner@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   050f8ad7b58d9079455af171ac279c4b9b828c11
commit: 790fa81b8c43cda9fe25c1b564d0afe3ddeeb370 [1665/2828] new helper: d_splice_alias_ops()
:::::: branch date: 8 hours ago
:::::: commit date: 6 days ago
config: x86_64-randconfig-161-20250616 (https://download.01.org/0day-ci/archive/20250616/202506162154.z0OrePAP-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202506162154.z0OrePAP-lkp@intel.com/

smatch warnings:
fs/dcache.c:3015 d_splice_alias_ops() warn: inconsistent returns '&inode->i_lock'.

vim +3015 fs/dcache.c

^1da177e4c3f41 Linus Torvalds    2005-04-16  2966  
790fa81b8c43cd Al Viro           2025-02-24  2967  struct dentry *d_splice_alias_ops(struct inode *inode, struct dentry *dentry,
790fa81b8c43cd Al Viro           2025-02-24  2968  				  const struct dentry_operations *ops)
3f70bd51cb4405 J. Bruce Fields   2014-02-18  2969  {
3f70bd51cb4405 J. Bruce Fields   2014-02-18  2970  	if (IS_ERR(inode))
3f70bd51cb4405 J. Bruce Fields   2014-02-18  2971  		return ERR_CAST(inode);
3f70bd51cb4405 J. Bruce Fields   2014-02-18  2972  
770bfad846ab66 David Howells     2006-08-22  2973  	BUG_ON(!d_unhashed(dentry));
770bfad846ab66 David Howells     2006-08-22  2974  
de689f5e366373 Al Viro           2016-03-09  2975  	if (!inode)
b5ae6b15bd73e3 Al Viro           2014-10-12  2976  		goto out;
de689f5e366373 Al Viro           2016-03-09  2977  
b96809173e94ea Al Viro           2016-04-11  2978  	security_d_instantiate(dentry, inode);
873feea09ebc98 Nicholas Piggin   2011-01-07  2979  	spin_lock(&inode->i_lock);
9eaef27b36a6b7 Trond Myklebust   2006-10-21  2980  	if (S_ISDIR(inode->i_mode)) {
b5ae6b15bd73e3 Al Viro           2014-10-12  2981  		struct dentry *new = __d_find_any_alias(inode);
b5ae6b15bd73e3 Al Viro           2014-10-12  2982  		if (unlikely(new)) {
a03e283bf5c3d4 Eric W. Biederman 2015-08-15  2983  			/* The reference to new ensures it remains an alias */
a03e283bf5c3d4 Eric W. Biederman 2015-08-15  2984  			spin_unlock(&inode->i_lock);
1836750115f20b Al Viro           2011-07-12  2985  			write_seqlock(&rename_lock);
b5ae6b15bd73e3 Al Viro           2014-10-12  2986  			if (unlikely(d_ancestor(new, dentry))) {
1836750115f20b Al Viro           2011-07-12  2987  				write_sequnlock(&rename_lock);
b5ae6b15bd73e3 Al Viro           2014-10-12  2988  				dput(new);
b5ae6b15bd73e3 Al Viro           2014-10-12  2989  				new = ERR_PTR(-ELOOP);
dd179946db2493 David Howells     2011-08-16  2990  				pr_warn_ratelimited(
dd179946db2493 David Howells     2011-08-16  2991  					"VFS: Lookup of '%s' in %s %s"
dd179946db2493 David Howells     2011-08-16  2992  					" would have caused loop\n",
dd179946db2493 David Howells     2011-08-16  2993  					dentry->d_name.name,
dd179946db2493 David Howells     2011-08-16  2994  					inode->i_sb->s_type->name,
dd179946db2493 David Howells     2011-08-16  2995  					inode->i_sb->s_id);
b5ae6b15bd73e3 Al Viro           2014-10-12  2996  			} else if (!IS_ROOT(new)) {
076515fc926793 Al Viro           2018-03-10  2997  				struct dentry *old_parent = dget(new->d_parent);
ef69f0506d8f3a Al Viro           2023-11-23  2998  				int err = __d_unalias(dentry, new);
b5ae6b15bd73e3 Al Viro           2014-10-12  2999  				write_sequnlock(&rename_lock);
b5ae6b15bd73e3 Al Viro           2014-10-12  3000  				if (err) {
b5ae6b15bd73e3 Al Viro           2014-10-12  3001  					dput(new);
b5ae6b15bd73e3 Al Viro           2014-10-12  3002  					new = ERR_PTR(err);
dd179946db2493 David Howells     2011-08-16  3003  				}
076515fc926793 Al Viro           2018-03-10  3004  				dput(old_parent);
b5ae6b15bd73e3 Al Viro           2014-10-12  3005  			} else {
b5ae6b15bd73e3 Al Viro           2014-10-12  3006  				__d_move(new, dentry, false);
b5ae6b15bd73e3 Al Viro           2014-10-12  3007  				write_sequnlock(&rename_lock);
9eaef27b36a6b7 Trond Myklebust   2006-10-21  3008  			}
b5ae6b15bd73e3 Al Viro           2014-10-12  3009  			iput(inode);
b5ae6b15bd73e3 Al Viro           2014-10-12  3010  			return new;
770bfad846ab66 David Howells     2006-08-22  3011  		}
b5ae6b15bd73e3 Al Viro           2014-10-12  3012  	}
b5ae6b15bd73e3 Al Viro           2014-10-12  3013  out:
790fa81b8c43cd Al Viro           2025-02-24  3014  	__d_add(dentry, inode, ops);
770bfad846ab66 David Howells     2006-08-22 @3015  	return NULL;
770bfad846ab66 David Howells     2006-08-22  3016  }
790fa81b8c43cd Al Viro           2025-02-24  3017  

:::::: The code at line 3015 was first introduced by commit
:::::: 770bfad846ab6628444428467b11fa6773ae9ea1 NFS: Add dentry materialisation op

:::::: TO: David Howells <dhowells@redhat.com>
:::::: CC: Trond Myklebust <Trond.Myklebust@netapp.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-06-16 14:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-16 14:03 [linux-next:master 1665/2828] fs/dcache.c:3015 d_splice_alias_ops() warn: inconsistent returns '&inode->i_lock' kernel test robot

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.