diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-11-30 18:00:07 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-01 17:21:51 -0500 |
commit | b85f562049cc7dce0d65577427a8321197d20983 (patch) | |
tree | 5444e3130ced7aec60a0104c6596b21f18b24a61 | |
parent | 29ade5db12930ec60133f6a02791f4b1a4af2943 (diff) | |
download | linux-stable-b85f562049cc7dce0d65577427a8321197d20983.tar.gz linux-stable-b85f562049cc7dce0d65577427a8321197d20983.tar.bz2 linux-stable-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>
-rw-r--r-- | fs/nfs/pnfs.c | 2 |
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; |