Re: [PATCH] pNFS: deadlock in pnfs_send_layoutreturn

kernel test robot
2026-04-10T05:29:07Z

Hi Ben,

kernel test robot noticed the following build errors:

[auto build test ERROR on trondmy-nfs/linux-next]
[also build test ERROR on linus/master v7.0-rc7 next-20260407]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Ben-Roberts/pNFS-deadlock-in-pnfs_send_layoutreturn/20260408-135718
base: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git linux-next
patch link: https://lore.kernel.org/r/20260407152035.4034628-1-ben.roberts%40gsacapital.com
patch subject: [PATCH] pNFS: deadlock in pnfs_send_layoutreturn
config: m68k-defconfig (https://download.01.org/0day-ci/archive/20260410/202604101309.6eRanxOC-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260410/202604101309.6eRanxOC-lkp@intel.com/reproduce)

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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604101309.6eRanxOC-lkp@intel.com/

All errors (new ones prefixed by >>):

fs/nfs/pnfs.c: In function 'pnfs_send_layoutreturn':
>> fs/nfs/pnfs.c:1364:49: error: expected ';' before 'pnfs_clear_layoutreturn_waitbit'
1364 | pnfs_clear_layoutreturn_info(lo)
| ^
| ;
1365 | pnfs_clear_layoutreturn_waitbit(lo);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vim +1364 fs/nfs/pnfs.c

1345
1346 static int
1347 pnfs_send_layoutreturn(struct pnfs_layout_hdr *lo,
1348 const nfs4_stateid *stateid,
1349 const struct cred **pcred,
1350 enum pnfs_iomode iomode,
1351 unsigned int flags)
1352 {
1353 struct inode *ino = lo->plh_inode;
1354 struct pnfs_layoutdriver_type *ld = NFS_SERVER(ino)->pnfs_curr_ld;
1355 struct nfs4_layoutreturn *lrp;
1356 const struct cred *cred = *pcred;
1357 int status = 0;
1358
1359 *pcred = NULL;
1360 lrp = kzalloc_obj(*lrp, nfs_io_gfp_mask());
1361 if (unlikely(lrp == NULL)) {
1362 status = -ENOMEM;
1363 spin_lock(&ino->i_lock);
> 1364 pnfs_clear_layoutreturn_info(lo)
1365 pnfs_clear_layoutreturn_waitbit(lo);
1366 spin_unlock(&ino->i_lock);
1367 put_cred(cred);
1368 pnfs_put_layout_hdr(lo);
1369 goto out;
1370 }
1371
1372 pnfs_init_layoutreturn_args(&lrp->args, lo, stateid, iomode);
1373 lrp->args.ld_private = &lrp->ld_private;
1374 lrp->clp = NFS_SERVER(ino)->nfs_client;
1375 lrp->cred = cred;
1376 if (ld->prepare_layoutreturn)
1377 ld->prepare_layoutreturn(&lrp->args);
1378
1379 status = nfs4_proc_layoutreturn(lrp, flags);
1380 out:
1381 dprintk("<-- %s status: %d\n", __func__, status);
1382 return status;
1383 }
1384

--
0-DAY CI Kernel Test Service