* [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.