From: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
To: Dan Carpenter <error27@gmail.com>
Cc: oe-kbuild@lists.linux.dev, Christoph Hellwig <hch@infradead.org>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
lkp@intel.com, oe-kbuild-all@lists.linux.dev,
Ira Weiny <ira.weiny@intel.com>,
Al Viro <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH 2/4] fs/sysv: Change the signature of dir_get_page()
Date: Wed, 04 Jan 2023 14:02:30 +0100 [thread overview]
Message-ID: <1840126.tdWV9SEqCh@suse> (raw)
In-Reply-To: <202301041814.3Lbh2QfK-lkp@intel.com>
On mercoledì 4 gennaio 2023 12:59:24 CET Dan Carpenter wrote:
> Hi Fabio,
>
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url:
> https://github.com/intel-lab-lkp/linux/commits/Fabio-M-De-Francesco/fs-sysv-U
> se-the-offset_in_page-helper/20221231-155850 base:
> git://git.infradead.org/users/hch/configfs.git for-next
> patch link:
> https://lore.kernel.org/r/20221231075717.10258-3-fmdefrancesco%40gmail.com
> patch subject: [PATCH 2/4] fs/sysv: Change the signature of dir_get_page()
> config: xtensa-randconfig-m031-20230101
> compiler: xtensa-linux-gcc (GCC) 12.1.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>
>
> smatch warnings:
> fs/sysv/dir.c:190 sysv_add_link() warn: passing zero to 'PTR_ERR'
>
> vim +/PTR_ERR +190 fs/sysv/dir.c
>
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 174 int
sysv_add_link(struct
> dentry *dentry, struct inode *inode) ^1da177e4c3f41 Linus Torvalds
> 2005-04-16 175 {
> 2b0143b5c986be David Howells 2015-03-17 176 struct inode *dir
=
> d_inode(dentry->d_parent); ^1da177e4c3f41 Linus Torvalds 2005-04-16
> 177 const char * name = dentry->d_name.name; ^1da177e4c3f41 Linus
Torvalds
> 2005-04-16 178 int namelen = dentry->d_name.len;
^1da177e4c3f41
> Linus Torvalds 2005-04-16 179 struct page *page = NULL;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 180 struct
sysv_dir_entry
> * de; ^1da177e4c3f41 Linus Torvalds 2005-04-16 181
unsigned long
> npages = dir_pages(dir); ^1da177e4c3f41 Linus Torvalds 2005-04-16
182
> unsigned long n; ^1da177e4c3f41 Linus Torvalds 2005-04-16
183
> char *kaddr;
> 26a6441aadde86 Nicholas Piggin 2007-10-16 184 loff_t pos;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 185 int err;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 186
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 187 /* We take care
of
> directory expansion in the same loop */ ^1da177e4c3f41 Linus Torvalds
> 2005-04-16 188 for (n = 0; n <= npages; n++) { 4b8a9c0afda16b Fabio M. De
> Francesco 2022-12-31 189 kaddr = dir_get_page(dir, n, &page);
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 @190 err =
PTR_ERR(page);
>
> This "err" assignment is a dead store (pointless/never used).
Hi Dan,
Thanks for catching it.
I'll wait for comments on this series one or two more days and then delete
that assignment.
Again thanks,
Fabio
> 4b8a9c0afda16b Fabio M. De Francesco 2022-12-31 191 if
(IS_ERR(kaddr))
> 4b8a9c0afda16b Fabio M. De Francesco 2022-12-31 192
return
> PTR_ERR(kaddr); ^1da177e4c3f41 Linus Torvalds 2005-04-16 193
de =
> (struct sysv_dir_entry *)kaddr; 09cbfeaf1a5a67 Kirill A. Shutemov
> 2016-04-01 194 kaddr += PAGE_SIZE - SYSV_DIRSIZE;
^1da177e4c3f41 Linus
> Torvalds 2005-04-16 195 while ((char *)de <= kaddr)
{
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 196
if (!de->inode)
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 197
goto got_it;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 198
err = -EEXIST;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 199
if
> (namecompare(namelen, SYSV_NAMELEN, name, de->name)) ^1da177e4c3f41 Linus
> Torvalds 2005-04-16 200 goto
out_page; ^1da177e4c3f41 Linus
> Torvalds 2005-04-16 201 de++;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 202 }
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 203
dir_put_page(page);
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 204 }
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 205 BUG();
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 206 return -EINVAL;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 207
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 208 got_it:
> 1023904333f9cb Fabio M. De Francesco 2022-12-31 209 pos =
page_offset(page)
> + offset_in_page(de); ^1da177e4c3f41 Linus Torvalds 2005-04-16 210
> lock_page(page); f4e420dc423148 Christoph Hellwig 2010-06-04
211 err
> = sysv_prepare_chunk(page, pos, SYSV_DIRSIZE); ^1da177e4c3f41 Linus Torvalds
> 2005-04-16 212 if (err)
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 213 goto
out_unlock;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 214 memcpy (de->name,
name,
> namelen); ^1da177e4c3f41 Linus Torvalds 2005-04-16 215 memset
> (de->name + namelen, 0, SYSV_DIRSIZE - namelen - 2); ^1da177e4c3f41 Linus
> Torvalds 2005-04-16 216 de->inode =
> cpu_to_fs16(SYSV_SB(inode->i_sb), inode->i_ino); 26a6441aadde86 Nicholas
> Piggin 2007-10-16 217 err = dir_commit_chunk(page, pos,
> SYSV_DIRSIZE); 02027d42c3f747 Deepa Dinamani 2016-09-14 218
> dir->i_mtime = dir->i_ctime = current_time(dir); ^1da177e4c3f41
Linus
> Torvalds 2005-04-16 219 mark_inode_dirty(dir); ^1da177e4c3f41
Linus
> Torvalds 2005-04-16 220 out_page:
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 221
dir_put_page(page);
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 222 return err;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 223 out_unlock:
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 224
unlock_page(page);
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 225 goto out_page;
> ^1da177e4c3f41 Linus Torvalds 2005-04-16 226 }
>
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp
next prev parent reply other threads:[~2023-01-04 13:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-04 10:26 [PATCH 2/4] fs/sysv: Change the signature of dir_get_page() kernel test robot
2023-01-04 11:59 ` Dan Carpenter
2023-01-04 13:02 ` Fabio M. De Francesco [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-01-07 1:30 kernel test robot
2023-01-06 4:25 kernel test robot
2022-12-31 7:57 [PATCH 0/4] fs/sysv: Replace kmap() with kmap_local_page() Fabio M. De Francesco
2022-12-31 7:57 ` [PATCH 1/4] fs/sysv: Use the offset_in_page() helper Fabio M. De Francesco
2022-12-31 7:57 ` [PATCH 2/4] fs/sysv: Change the signature of dir_get_page() Fabio M. De Francesco
2022-12-31 7:57 ` [PATCH 3/4] fs/sysv: Use dir_put_page() in sysv_rename() Fabio M. De Francesco
2022-12-31 7:57 ` [PATCH 4/4] fs/sysv: Replace kmap() with kmap_local_page() Fabio M. De Francesco
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=1840126.tdWV9SEqCh@suse \
--to=fmdefrancesco@gmail.com \
--cc=error27@gmail.com \
--cc=hch@infradead.org \
--cc=ira.weiny@intel.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--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.