From: Trond Myklebust Date: Fri, 21 Sep 2012 19:49:42 +0000 (-0400) Subject: NFSv4.1: Clear NFS_LAYOUT_BULK_RECALL when the layout segments are freed X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=173f77e9c5cbddb02eebe17dd9c48d39e5eb86b9;p=openwrt%2Fstaging%2Fblogic.git NFSv4.1: Clear NFS_LAYOUT_BULK_RECALL when the layout segments are freed Once all the affected layout segments have been freed up, clear the NFS_LAYOUT_BULK_RECALL flag so that we can reuse the pnfs_layout_hdr Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index bda88a275071..174c51a5001c 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -331,6 +331,8 @@ pnfs_layout_remove_lseg(struct pnfs_layout_hdr *lo, list_del_init(&lseg->pls_list); /* Matched by pnfs_get_layout_hdr in pnfs_layout_insert_lseg */ atomic_dec(&lo->plh_refcount); + if (list_empty(&lo->plh_segs)) + clear_bit(NFS_LAYOUT_BULK_RECALL, &lo->plh_flags); rpc_wake_up(&NFS_SERVER(inode)->roc_rpcwaitq); }