diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-01 00:00:07 +0100 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-01 23:21:51 +0100 |
commit | b85f562049cc7dce0d65577427a8321197d20983 (patch) | |
tree | 5444e3130ced7aec60a0104c6596b21f18b24a61 /fs/nfs/pnfs.c | |
parent | pNFS: Wait on outstanding layoutreturns to complete in pnfs_roc() (diff) | |
download | linux-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.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; |