On 9/23/2015 20:05, Trond Myklebust wrote: > On Wed, Sep 23, 2015 at 4:27 AM, Kinglong Mee <kinglongmee@xxxxxxxxx> wrote: >> I find the inode returned from nfs_igrab_and_active is NULL >> in _nfs4_proc_delegreturn(), >> >> data->inode = nfs_igrab_and_active(inode); >> >> So that, NFS_I(inode) causes the panic. > > I've added a check for ino == NULL to nfs4_wait_on_layoutreturn()... Yes, that's right. But you add the checking at the wrong place in pnfs_wait_on_layoutreturn() at your tree. +bool pnfs_wait_on_layoutreturn(struct inode *ino, struct rpc_task *task) +{ + struct pnfs_layout_hdr *lo; + bool sleep = false; + + if (ino == NULL) + goto out; + /* we might not have grabbed lo reference. so need to check under thanks, Kinglong Mee -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html