linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, NeilBrown <neilb@ownmail.net>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Amir Goldstein <amir73il@gmail.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	Jan Kara <jack@suse.cz>,
	linux-fsdevel@vger.kernel.org, Jeff Layton <jlayton@kernel.org>,
	Chris Mason <chris.mason@fusionio.com>,
	David Sterba <dsterba@suse.com>,
	David Howells <dhowells@redhat.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Danilo Krummrich <dakr@kernel.org>,
	Tyler Hicks <code@tyhicks.com>,
	Miklos Szeredi <miklos@szeredi.hu>,
	Chuck Lever <chuck.lever@oracle.com>,
	Olga Kornievskaia <okorniev@redhat.com>,
	Dai Ngo <Dai.Ngo@oracle.com>, Namjae Jeon <linkinjeon@kernel.org>,
	Steve French <smfrench@gmail.com>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Carlos Maiolino <cem@kernel.org>,
	John Johansen <john.johansen@canonical.com>,
	Paul Moore <paul@paul-moore.com>,
	James Morris <jmorris@namei.org>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	Stephen Smalley <stephen.smalley.work@gmail.com>,
	Ondrej Mosnacek <omosnace@redhat.com>,
	Mateusz Guzik <mjguzik@gmail.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Stefan Berger <stefanb@linux.ibm.com>
Subject: Re: [PATCH v4 04/14] VFS/nfsd/cachefiles/ovl: add start_creating() and end_creating()
Date: Sun, 2 Nov 2025 12:08:47 +0300	[thread overview]
Message-ID: <202511021406.Tv3dcpn5-lkp@intel.com> (raw)
In-Reply-To: <20251029234353.1321957-5-neilb@ownmail.net>

Hi NeilBrown,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/NeilBrown/debugfs-rename-end_creating-to-debugfs_end_creating/20251030-075146
base:   driver-core/driver-core-testing
patch link:    https://lore.kernel.org/r/20251029234353.1321957-5-neilb%40ownmail.net
patch subject: [PATCH v4 04/14] VFS/nfsd/cachefiles/ovl: add start_creating() and end_creating()
config: x86_64-randconfig-161-20251101 (https://download.01.org/0day-ci/archive/20251102/202511021406.Tv3dcpn5-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)

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 <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202511021406.Tv3dcpn5-lkp@intel.com/

smatch warnings:
fs/overlayfs/dir.c:130 ovl_whiteout() error: uninitialized symbol 'whiteout'.
fs/overlayfs/dir.c:130 ovl_whiteout() warn: passing zero to 'PTR_ERR'

vim +/whiteout +130 fs/overlayfs/dir.c

c21c839b8448dd Chengguang Xu     2020-04-24   97  static struct dentry *ovl_whiteout(struct ovl_fs *ofs)
e9be9d5e76e348 Miklos Szeredi    2014-10-24   98  {
e9be9d5e76e348 Miklos Szeredi    2014-10-24   99  	int err;
807b78b0fffc23 NeilBrown         2025-10-30  100  	struct dentry *whiteout, *link;
c21c839b8448dd Chengguang Xu     2020-04-24  101  	struct dentry *workdir = ofs->workdir;
e9be9d5e76e348 Miklos Szeredi    2014-10-24  102  	struct inode *wdir = workdir->d_inode;
e9be9d5e76e348 Miklos Szeredi    2014-10-24  103  
8afa0a73671389 NeilBrown         2025-07-16  104  	guard(mutex)(&ofs->whiteout_lock);
8afa0a73671389 NeilBrown         2025-07-16  105  
c21c839b8448dd Chengguang Xu     2020-04-24  106  	if (!ofs->whiteout) {
807b78b0fffc23 NeilBrown         2025-10-30  107  		whiteout = ovl_start_creating_temp(ofs, workdir);
8afa0a73671389 NeilBrown         2025-07-16  108  		if (IS_ERR(whiteout))
8afa0a73671389 NeilBrown         2025-07-16  109  			return whiteout;

white out is not an error pointer.

807b78b0fffc23 NeilBrown         2025-10-30  110  		err = ovl_do_whiteout(ofs, wdir, whiteout);
807b78b0fffc23 NeilBrown         2025-10-30  111  		if (!err)
807b78b0fffc23 NeilBrown         2025-10-30  112  			ofs->whiteout = dget(whiteout);
807b78b0fffc23 NeilBrown         2025-10-30  113  		end_creating(whiteout, workdir);
807b78b0fffc23 NeilBrown         2025-10-30  114  		if (err)
807b78b0fffc23 NeilBrown         2025-10-30  115  			return ERR_PTR(err);
e9be9d5e76e348 Miklos Szeredi    2014-10-24  116  	}

whiteout not set on else path

e9be9d5e76e348 Miklos Szeredi    2014-10-24  117  
e4599d4b1aeff0 Amir Goldstein    2023-06-17  118  	if (!ofs->no_shared_whiteout) {
807b78b0fffc23 NeilBrown         2025-10-30  119  		link = ovl_start_creating_temp(ofs, workdir);
807b78b0fffc23 NeilBrown         2025-10-30  120  		if (IS_ERR(link))
807b78b0fffc23 NeilBrown         2025-10-30  121  			return link;
807b78b0fffc23 NeilBrown         2025-10-30  122  		err = ovl_do_link(ofs, ofs->whiteout, wdir, link);
807b78b0fffc23 NeilBrown         2025-10-30  123  		if (!err)
807b78b0fffc23 NeilBrown         2025-10-30  124  			whiteout = dget(link);

It's set here, but then returned on line 127.

807b78b0fffc23 NeilBrown         2025-10-30  125  		end_creating(link, workdir);
807b78b0fffc23 NeilBrown         2025-10-30  126  		if (!err)
807b78b0fffc23 NeilBrown         2025-10-30  127  			return whiteout;;

nit: double ;;

807b78b0fffc23 NeilBrown         2025-10-30  128  
807b78b0fffc23 NeilBrown         2025-10-30  129  		if (err != -EMLINK) {
672820a070ea5e Antonio Quartulli 2025-07-21 @130  			pr_warn("Failed to link whiteout - disabling whiteout inode sharing(nlink=%u, err=%lu)\n",
672820a070ea5e Antonio Quartulli 2025-07-21  131  				ofs->whiteout->d_inode->i_nlink,
672820a070ea5e Antonio Quartulli 2025-07-21  132  				PTR_ERR(whiteout));

whiteout is either valid or uninitialized.  For some reason
Smatch thinks whiteout can be NULL, I suspect because of
the NULL check in dget().

e4599d4b1aeff0 Amir Goldstein    2023-06-17  133  			ofs->no_shared_whiteout = true;
c21c839b8448dd Chengguang Xu     2020-04-24  134  		}
c21c839b8448dd Chengguang Xu     2020-04-24  135  	}
c21c839b8448dd Chengguang Xu     2020-04-24  136  	whiteout = ofs->whiteout;
c21c839b8448dd Chengguang Xu     2020-04-24  137  	ofs->whiteout = NULL;
e9be9d5e76e348 Miklos Szeredi    2014-10-24  138  	return whiteout;
e9be9d5e76e348 Miklos Szeredi    2014-10-24  139  }

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


  reply	other threads:[~2025-11-02  9:08 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-29 23:31 [PATCH v4 00/14] Create and use APIs to centralise locking for directory ops NeilBrown
2025-10-29 23:31 ` [PATCH v4 01/14] debugfs: rename end_creating() to debugfs_end_creating() NeilBrown
2025-10-30  5:32   ` Greg Kroah-Hartman
2025-10-29 23:31 ` [PATCH v4 02/14] VFS: introduce start_dirop() and end_dirop() NeilBrown
2025-10-29 23:31 ` [PATCH v4 03/14] VFS: tidy up do_unlinkat() NeilBrown
2025-10-29 23:31 ` [PATCH v4 04/14] VFS/nfsd/cachefiles/ovl: add start_creating() and end_creating() NeilBrown
2025-11-02  9:08   ` Dan Carpenter [this message]
2025-11-02  9:10     ` Dan Carpenter
2025-11-02  9:59     ` Amir Goldstein
2025-11-06  0:53       ` NeilBrown
2025-10-29 23:31 ` [PATCH v4 05/14] VFS/nfsd/cachefiles/ovl: introduce start_removing() and end_removing() NeilBrown
2025-10-29 23:31 ` [PATCH v4 06/14] VFS: introduce start_creating_noperm() and start_removing_noperm() NeilBrown
2025-10-29 23:31 ` [PATCH v4 07/14] VFS: introduce start_removing_dentry() NeilBrown
2025-10-30  6:11   ` Al Viro
2025-10-30 23:22     ` NeilBrown
2025-10-29 23:31 ` [PATCH v4 08/14] VFS: add start_creating_killable() and start_removing_killable() NeilBrown
2025-10-29 23:31 ` [PATCH v4 09/14] VFS/nfsd/ovl: introduce start_renaming() and end_renaming() NeilBrown
2025-10-30 13:22   ` Chuck Lever
2025-10-29 23:31 ` [PATCH v4 10/14] VFS/ovl/smb: introduce start_renaming_dentry() NeilBrown
2025-10-30  0:02   ` Namjae Jeon
2025-10-29 23:31 ` [PATCH v4 11/14] Add start_renaming_two_dentries() NeilBrown
2025-10-30  6:22   ` Al Viro
2025-10-30 23:37     ` NeilBrown
2025-10-29 23:31 ` [PATCH v4 12/14] ecryptfs: use new start_creating/start_removing APIs NeilBrown
2025-10-30  6:24   ` Al Viro
2025-10-30 23:41     ` NeilBrown
2025-10-29 23:31 ` [PATCH v4 13/14] VFS: change vfs_mkdir() to unlock on failure NeilBrown
2025-10-29 23:31 ` [PATCH v4 14/14] VFS: introduce end_creating_keep() NeilBrown

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=202511021406.Tv3dcpn5-lkp@intel.com \
    --to=dan.carpenter@linaro.org \
    --cc=Dai.Ngo@oracle.com \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=cem@kernel.org \
    --cc=chris.mason@fusionio.com \
    --cc=chuck.lever@oracle.com \
    --cc=code@tyhicks.com \
    --cc=dakr@kernel.org \
    --cc=dhowells@redhat.com \
    --cc=dsterba@suse.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jack@suse.cz \
    --cc=jlayton@kernel.org \
    --cc=jmorris@namei.org \
    --cc=john.johansen@canonical.com \
    --cc=linkinjeon@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=miklos@szeredi.hu \
    --cc=mjguzik@gmail.com \
    --cc=neilb@ownmail.net \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=oe-kbuild@lists.linux.dev \
    --cc=okorniev@redhat.com \
    --cc=omosnace@redhat.com \
    --cc=paul@paul-moore.com \
    --cc=rafael@kernel.org \
    --cc=senozhatsky@chromium.org \
    --cc=serge@hallyn.com \
    --cc=smfrench@gmail.com \
    --cc=stefanb@linux.ibm.com \
    --cc=stephen.smalley.work@gmail.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).