Hi Anna, 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/Anna-Schumaker/NFS-Fixes-for-nfs4_proc_mkdir-error-handling/20250516-231124 base: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git linux-next patch link: https://lore.kernel.org/r/20250516150010.61641-1-anna%40kernel.org patch subject: [PATCH] NFS: Fixes for nfs4_proc_mkdir() error handling config: i386-randconfig-141-20250517 (https://download.01.org/0day-ci/archive/20250518/202505181116.RhlCb75I-lkp@xxxxxxxxx/config) compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247) 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@xxxxxxxxx> | Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> | Closes: https://lore.kernel.org/r/202505181116.RhlCb75I-lkp@xxxxxxxxx/ New smatch warnings: fs/nfs/nfs4proc.c:5277 nfs4_proc_mkdir() warn: passing zero to 'PTR_ERR' vim +/PTR_ERR +5277 fs/nfs/nfs4proc.c 8376583b84a193 NeilBrown 2025-02-27 5260 static struct dentry *nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry, ^1da177e4c3f41 Linus Torvalds 2005-04-16 5261 struct iattr *sattr) ^1da177e4c3f41 Linus Torvalds 2005-04-16 5262 { dff25ddb48086a Andreas Gruenbacher 2016-12-02 5263 struct nfs_server *server = NFS_SERVER(dir); 0688e64bc60038 Trond Myklebust 2019-04-07 5264 struct nfs4_exception exception = { 0688e64bc60038 Trond Myklebust 2019-04-07 5265 .interruptible = true, 0688e64bc60038 Trond Myklebust 2019-04-07 5266 }; c528f70f504434 Trond Myklebust 2022-10-19 5267 struct nfs4_label l, *label; 8376583b84a193 NeilBrown 2025-02-27 5268 struct dentry *alias; ^1da177e4c3f41 Linus Torvalds 2005-04-16 5269 int err; a8a5da996df7d2 Aneesh Kumar K.V 2010-12-09 5270 aa9c2669626ca7 David Quigley 2013-05-22 5271 label = nfs4_label_init_security(dir, dentry, sattr, &l); aa9c2669626ca7 David Quigley 2013-05-22 5272 dff25ddb48086a Andreas Gruenbacher 2016-12-02 5273 if (!(server->attr_bitmask[2] & FATTR4_WORD2_MODE_UMASK)) a8a5da996df7d2 Aneesh Kumar K.V 2010-12-09 5274 sattr->ia_mode &= ~current_umask(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 5275 do { 8376583b84a193 NeilBrown 2025-02-27 5276 alias = _nfs4_proc_mkdir(dir, dentry, sattr, label); 4c35d65f4c6f1e Anna Schumaker 2025-05-16 @5277 err = PTR_ERR(alias); 4c35d65f4c6f1e Anna Schumaker 2025-05-16 5278 if (err > 0) 4c35d65f4c6f1e Anna Schumaker 2025-05-16 5279 err = 0; This doesn't work. Imagine we are on a 64bit system and _nfs4_proc_mkdir() returns a valid pointer. It depends on if BIT(31) is set whether we return zero or a random negative number. This needs to be: err = PTR_ERR_OR_ZERO(alias); 078ea3dfe396b1 Trond Myklebust 2013-08-12 5280 trace_nfs4_mkdir(dir, &dentry->d_name, err); 078ea3dfe396b1 Trond Myklebust 2013-08-12 5281 err = nfs4_handle_exception(NFS_SERVER(dir), err, ^1da177e4c3f41 Linus Torvalds 2005-04-16 5282 &exception); ^1da177e4c3f41 Linus Torvalds 2005-04-16 5283 } while (exception.retry); aa9c2669626ca7 David Quigley 2013-05-22 5284 nfs4_label_release_security(label); aa9c2669626ca7 David Quigley 2013-05-22 5285 4c35d65f4c6f1e Anna Schumaker 2025-05-16 5286 if (err != 0) 4c35d65f4c6f1e Anna Schumaker 2025-05-16 5287 return ERR_PTR(err); 8376583b84a193 NeilBrown 2025-02-27 5288 return alias; ^1da177e4c3f41 Linus Torvalds 2005-04-16 5289 } -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki