From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH v2 4/6] kernfs: implement readdir FMODE_NOWAIT
Date: Thu, 11 May 2023 07:13:04 +0800 [thread overview]
Message-ID: <202305110647.eSnSEulg-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230422-uring-getdents-v2-4-2db1e37dc55e@codewreck.org>
References: <20230422-uring-getdents-v2-4-2db1e37dc55e@codewreck.org>
TO: Dominique Martinet <asmadeus@codewreck.org>
TO: Alexander Viro <viro@zeniv.linux.org.uk>
TO: Christian Brauner <brauner@kernel.org>
TO: Jens Axboe <axboe@kernel.dk>
TO: Pavel Begunkov <asml.silence@gmail.com>
TO: Stefan Roesch <shr@fb.com>
CC: Clay Harris <bugs@claycon.org>
CC: Dave Chinner <david@fromorbit.com>
CC: linux-fsdevel@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: io-uring@vger.kernel.org
CC: Dominique Martinet <asmadeus@codewreck.org>
Hi Dominique,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 58390c8ce1bddb6c623f62e7ed36383e7fa5c02f]
url: https://github.com/intel-lab-lkp/linux/commits/Dominique-Martinet/fs-split-off-vfs_getdents-function-of-getdents64-syscall/20230510-185542
base: 58390c8ce1bddb6c623f62e7ed36383e7fa5c02f
patch link: https://lore.kernel.org/r/20230422-uring-getdents-v2-4-2db1e37dc55e%40codewreck.org
patch subject: [PATCH v2 4/6] kernfs: implement readdir FMODE_NOWAIT
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230511/202305110647.eSnSEulg-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202305110647.eSnSEulg-lkp@intel.com/
smatch warnings:
fs/kernfs/dir.c:1863 kernfs_fop_readdir() warn: inconsistent returns '&root->kernfs_rwsem'.
vim +1863 fs/kernfs/dir.c
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1814
c637b8acbe079e Tejun Heo 2013-12-11 1815 static int kernfs_fop_readdir(struct file *file, struct dir_context *ctx)
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1816 {
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1817 struct dentry *dentry = file->f_path.dentry;
319ba91d352a74 Shaohua Li 2017-07-12 1818 struct kernfs_node *parent = kernfs_dentry_node(dentry);
324a56e16e44ba Tejun Heo 2013-12-11 1819 struct kernfs_node *pos = file->private_data;
393c3714081a53 Minchan Kim 2021-11-18 1820 struct kernfs_root *root;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1821 const void *ns = NULL;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1822
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1823 if (!dir_emit_dots(file, ctx))
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1824 return 0;
393c3714081a53 Minchan Kim 2021-11-18 1825
393c3714081a53 Minchan Kim 2021-11-18 1826 root = kernfs_root(parent);
a551138c4b3b9f Dominique Martinet 2023-05-10 1827 if (ctx->flags & DIR_CONTEXT_F_NOWAIT) {
a551138c4b3b9f Dominique Martinet 2023-05-10 1828 if (!down_read_trylock(&root->kernfs_rwsem))
a551138c4b3b9f Dominique Martinet 2023-05-10 1829 return -EAGAIN;
a551138c4b3b9f Dominique Martinet 2023-05-10 1830 } else {
393c3714081a53 Minchan Kim 2021-11-18 1831 down_read(&root->kernfs_rwsem);
a551138c4b3b9f Dominique Martinet 2023-05-10 1832 }
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1833
324a56e16e44ba Tejun Heo 2013-12-11 1834 if (kernfs_ns_enabled(parent))
c525aaddc366df Tejun Heo 2013-12-11 1835 ns = kernfs_info(dentry->d_sb)->ns;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1836
c637b8acbe079e Tejun Heo 2013-12-11 1837 for (pos = kernfs_dir_pos(ns, parent, ctx->pos, pos);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1838 pos;
c637b8acbe079e Tejun Heo 2013-12-11 1839 pos = kernfs_dir_next_pos(ns, parent, ctx->pos, pos)) {
adc5e8b58f4886 Tejun Heo 2013-12-11 1840 const char *name = pos->name;
364595a6851bf6 Jeff Layton 2023-03-30 1841 unsigned int type = fs_umode_to_dtype(pos->mode);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1842 int len = strlen(name);
67c0496e87d193 Tejun Heo 2019-11-04 1843 ino_t ino = kernfs_ino(pos);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1844
adc5e8b58f4886 Tejun Heo 2013-12-11 1845 ctx->pos = pos->hash;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1846 file->private_data = pos;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1847 kernfs_get(pos);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1848
393c3714081a53 Minchan Kim 2021-11-18 1849 up_read(&root->kernfs_rwsem);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1850 if (!dir_emit(ctx, name, len, ino, type))
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1851 return 0;
393c3714081a53 Minchan Kim 2021-11-18 1852 down_read(&root->kernfs_rwsem);
a551138c4b3b9f Dominique Martinet 2023-05-10 1853 if (ctx->flags & DIR_CONTEXT_F_NOWAIT) {
a551138c4b3b9f Dominique Martinet 2023-05-10 1854 if (!down_read_trylock(&root->kernfs_rwsem))
a551138c4b3b9f Dominique Martinet 2023-05-10 1855 return 0;
a551138c4b3b9f Dominique Martinet 2023-05-10 1856 } else {
a551138c4b3b9f Dominique Martinet 2023-05-10 1857 down_read(&root->kernfs_rwsem);
a551138c4b3b9f Dominique Martinet 2023-05-10 1858 }
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1859 }
393c3714081a53 Minchan Kim 2021-11-18 1860 up_read(&root->kernfs_rwsem);
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1861 file->private_data = NULL;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1862 ctx->pos = INT_MAX;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 @1863 return 0;
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1864 }
fd7b9f7b9776b1 Tejun Heo 2013-11-28 1865
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next reply other threads:[~2023-05-10 23:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-10 23:13 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-05-10 10:52 [PATCH v2 0/6] io_uring: add getdents support, take 2 Dominique Martinet
2023-05-10 10:52 ` [PATCH v2 4/6] kernfs: implement readdir FMODE_NOWAIT Dominique Martinet
2023-05-11 10:55 ` Dan Carpenter
2023-05-11 11:03 ` Dominique Martinet
2023-05-16 3:04 ` kernel test robot
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=202305110647.eSnSEulg-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@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 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.