]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
NFSv4.1: Clear NFS_LAYOUT_BULK_RECALL when the layout segments are freed
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 21 Sep 2012 19:49:42 +0000 (15:49 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 24 Sep 2012 17:24:32 +0000 (13:24 -0400)
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 <Trond.Myklebust@netapp.com>
fs/nfs/pnfs.c

index 791eda90c5c8392f70d0d8cc317f78945675d27d..86d95bf651dd9e1965c38860708f00ba5f7ae592 100644 (file)
@@ -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);
 }