From: kernel test robot <lkp@intel.com>
To: Imran Khan <imran.f.khan@oracle.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [PATCH v6 7/7] kernfs: Replace per-fs rwsem with hashed ones.
Date: Tue, 15 Feb 2022 01:19:23 +0800 [thread overview]
Message-ID: <202202142322.OezS0EtW-lkp@intel.com> (raw)
In-Reply-To: <20220214120322.2402628-8-imran.f.khan@oracle.com>
Hi Imran,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on 6d9bd4ad4ca08b1114e814c2c42383b8b13be631]
url: https://github.com/0day-ci/linux/commits/Imran-Khan/kernfs-Introduce-hashed-mutexes-to-replace-global-kernfs_open_file_mutex/20220214-200700
base: 6d9bd4ad4ca08b1114e814c2c42383b8b13be631
config: hexagon-randconfig-r012-20220213 (https://download.01.org/0day-ci/archive/20220214/202202142322.OezS0EtW-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ea071884b0cc7210b3cc5fe858f0e892a779a23b)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/48eab913f80f1555d57b964ef7cdba17f5ec5d1f
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Imran-Khan/kernfs-Introduce-hashed-mutexes-to-replace-global-kernfs_open_file_mutex/20220214-200700
git checkout 48eab913f80f1555d57b964ef7cdba17f5ec5d1f
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash fs/kernfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> fs/kernfs/dir.c:1619:7: warning: variable 'old_parent' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!new_name)
^~~~~~~~~
fs/kernfs/dir.c:1653:50: note: uninitialized use occurs here
up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
^~~~~~~~~~
fs/kernfs/dir.c:1619:3: note: remove the 'if' if its condition is always false
if (!new_name)
^~~~~~~~~~~~~~
fs/kernfs/dir.c:1612:6: warning: variable 'old_parent' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (kernfs_find_ns(new_parent, new_name, new_ns))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1653:50: note: uninitialized use occurs here
up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
^~~~~~~~~~
fs/kernfs/dir.c:1612:2: note: remove the 'if' if its condition is always false
if (kernfs_find_ns(new_parent, new_name, new_ns))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1607:6: warning: variable 'old_parent' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if ((kn->parent == new_parent) && (kn->ns == new_ns) &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1653:50: note: uninitialized use occurs here
up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
^~~~~~~~~~
fs/kernfs/dir.c:1607:2: note: remove the 'if' if its condition is always false
if ((kn->parent == new_parent) && (kn->ns == new_ns) &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1602:6: warning: variable 'old_parent' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1653:50: note: uninitialized use occurs here
up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
^~~~~~~~~~
fs/kernfs/dir.c:1602:2: note: remove the 'if' if its condition is always false
if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/kernfs/dir.c:1602:6: warning: variable 'old_parent' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1653:50: note: uninitialized use occurs here
up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
^~~~~~~~~~
fs/kernfs/dir.c:1602:6: note: remove the '||' if its condition is always false
if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/kernfs/dir.c:1602:6: warning: variable 'old_parent' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
^~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1653:50: note: uninitialized use occurs here
up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
^~~~~~~~~~
fs/kernfs/dir.c:1602:6: note: remove the '||' if its condition is always false
if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
^~~~~~~~~~~~~~~~~~~~~
fs/kernfs/dir.c:1591:32: note: initialize the variable 'old_parent' to silence this warning
struct kernfs_node *old_parent;
^
= NULL
6 warnings generated.
vim +1619 fs/kernfs/dir.c
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1580
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1581 /**
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1582 * kernfs_rename_ns - move and rename a kernfs_node
324a56e16e44ba Tejun Heo 2013-12-11 1583 * @kn: target node
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1584 * @new_parent: new parent to put @sd under
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1585 * @new_name: new name
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1586 * @new_ns: new namespace tag
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1587 */
324a56e16e44ba Tejun Heo 2013-12-11 1588 int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1589 const char *new_name, const void *new_ns)
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1590 {
3eef34ad7dc369 Tejun Heo 2014-02-07 1591 struct kernfs_node *old_parent;
3eef34ad7dc369 Tejun Heo 2014-02-07 1592 const char *old_name = NULL;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1593 int error;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1594
3eef34ad7dc369 Tejun Heo 2014-02-07 1595 /* can't move or rename root */
3eef34ad7dc369 Tejun Heo 2014-02-07 1596 if (!kn->parent)
3eef34ad7dc369 Tejun Heo 2014-02-07 1597 return -EINVAL;
3eef34ad7dc369 Tejun Heo 2014-02-07 1598
48eab913f80f15 Imran Khan 2022-02-14 1599 down_write_kernfs_rwsem_rename_ns(kn, kn->parent, new_parent);
798c75a0d44cdb Greg Kroah-Hartman 2014-01-13 1600
d0ae3d4347ee02 Tejun Heo 2013-12-11 1601 error = -ENOENT;
ea015218f2f7ac Eric W. Biederman 2015-05-13 @1602 if (!kernfs_active(kn) || !kernfs_active(new_parent) ||
ea015218f2f7ac Eric W. Biederman 2015-05-13 1603 (new_parent->flags & KERNFS_EMPTY_DIR))
d0ae3d4347ee02 Tejun Heo 2013-12-11 1604 goto out;
d0ae3d4347ee02 Tejun Heo 2013-12-11 1605
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1606 error = 0;
adc5e8b58f4886 Tejun Heo 2013-12-11 1607 if ((kn->parent == new_parent) && (kn->ns == new_ns) &&
adc5e8b58f4886 Tejun Heo 2013-12-11 1608 (strcmp(kn->name, new_name) == 0))
798c75a0d44cdb Greg Kroah-Hartman 2014-01-13 1609 goto out; /* nothing to rename */
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1610
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1611 error = -EEXIST;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1612 if (kernfs_find_ns(new_parent, new_name, new_ns))
798c75a0d44cdb Greg Kroah-Hartman 2014-01-13 1613 goto out;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1614
324a56e16e44ba Tejun Heo 2013-12-11 1615 /* rename kernfs_node */
adc5e8b58f4886 Tejun Heo 2013-12-11 1616 if (strcmp(kn->name, new_name) != 0) {
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1617 error = -ENOMEM;
75287a677ba1be Andrzej Hajda 2015-02-13 1618 new_name = kstrdup_const(new_name, GFP_KERNEL);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 @1619 if (!new_name)
798c75a0d44cdb Greg Kroah-Hartman 2014-01-13 1620 goto out;
3eef34ad7dc369 Tejun Heo 2014-02-07 1621 } else {
3eef34ad7dc369 Tejun Heo 2014-02-07 1622 new_name = NULL;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1623 }
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1624
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1625 /*
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1626 * Move to the appropriate place in the appropriate directories rbtree.
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1627 */
c637b8acbe079e Tejun Heo 2013-12-11 1628 kernfs_unlink_sibling(kn);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1629 kernfs_get(new_parent);
3eef34ad7dc369 Tejun Heo 2014-02-07 1630
3eef34ad7dc369 Tejun Heo 2014-02-07 1631 /* rename_lock protects ->parent and ->name accessors */
3eef34ad7dc369 Tejun Heo 2014-02-07 1632 spin_lock_irq(&kernfs_rename_lock);
3eef34ad7dc369 Tejun Heo 2014-02-07 1633
3eef34ad7dc369 Tejun Heo 2014-02-07 1634 old_parent = kn->parent;
adc5e8b58f4886 Tejun Heo 2013-12-11 1635 kn->parent = new_parent;
3eef34ad7dc369 Tejun Heo 2014-02-07 1636
3eef34ad7dc369 Tejun Heo 2014-02-07 1637 kn->ns = new_ns;
3eef34ad7dc369 Tejun Heo 2014-02-07 1638 if (new_name) {
3eef34ad7dc369 Tejun Heo 2014-02-07 1639 old_name = kn->name;
3eef34ad7dc369 Tejun Heo 2014-02-07 1640 kn->name = new_name;
3eef34ad7dc369 Tejun Heo 2014-02-07 1641 }
3eef34ad7dc369 Tejun Heo 2014-02-07 1642
3eef34ad7dc369 Tejun Heo 2014-02-07 1643 spin_unlock_irq(&kernfs_rename_lock);
3eef34ad7dc369 Tejun Heo 2014-02-07 1644
9561a8961c708f Tejun Heo 2014-02-10 1645 kn->hash = kernfs_name_hash(kn->name, kn->ns);
c637b8acbe079e Tejun Heo 2013-12-11 1646 kernfs_link_sibling(kn);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1647
3eef34ad7dc369 Tejun Heo 2014-02-07 1648 kernfs_put(old_parent);
75287a677ba1be Andrzej Hajda 2015-02-13 1649 kfree_const(old_name);
3eef34ad7dc369 Tejun Heo 2014-02-07 1650
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1651 error = 0;
ae34372eb8408b Tejun Heo 2014-01-10 1652 out:
48eab913f80f15 Imran Khan 2022-02-14 1653 up_write_kernfs_rwsem_rename_ns(kn, new_parent, old_parent);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1654 return error;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1655 }
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1656
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
next parent reply other threads:[~2022-02-14 17:20 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20220214120322.2402628-8-imran.f.khan@oracle.com>
2022-02-14 17:19 ` kernel test robot [this message]
2022-02-14 17:49 ` [PATCH v6 7/7] kernfs: Replace per-fs rwsem with hashed ones Nathan Chancellor
2022-02-16 8:57 ` [kbuild-all] " Chen, Rong A
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=202202142322.OezS0EtW-lkp@intel.com \
--to=lkp@intel.com \
--cc=imran.f.khan@oracle.com \
--cc=kbuild-all@lists.01.org \
--cc=llvm@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox