summaryrefslogtreecommitdiffstats
path: root/fs/nfs/pnfs.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2016-12-01 00:00:07 +0100
committerTrond Myklebust <trond.myklebust@primarydata.com>2016-12-01 23:21:51 +0100
commitb85f562049cc7dce0d65577427a8321197d20983 (patch)
tree5444e3130ced7aec60a0104c6596b21f18b24a61 /fs/nfs/pnfs.c
parentpNFS: Wait on outstanding layoutreturns to complete in pnfs_roc() (diff)
downloadlinux-b85f562049cc7dce0d65577427a8321197d20983.tar.xz
linux-b85f562049cc7dce0d65577427a8321197d20983.zip
pNFS: Skip invalid stateids when doing a bulk destroy
If the layout stateid is already invalid, we have no work to do. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/pnfs.c')
-rw-r--r--fs/nfs/pnfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 550010826bdd..0b25a1c820ba 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -750,6 +750,8 @@ pnfs_layout_bulk_destroy_byserver_locked(struct nfs_client *clp,
struct inode *inode;
list_for_each_entry_safe(lo, next, &server->layouts, plh_layouts) {
+ if (test_bit(NFS_LAYOUT_INVALID_STID, &lo->plh_flags))
+ continue;
inode = igrab(lo->plh_inode);
if (inode == NULL)
continue;