diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2019-02-22 14:20:27 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2019-02-23 13:59:29 -0500 |
commit | 5085607d209102b37b169bc94d0aa39566a9842a (patch) | |
tree | 3aaf61d3eaca82858cfa12f8698c7a27942a0dcd /fs/nfs/pnfs.h | |
parent | 6f9449be53f3ce383caed797708b332ede8d952c (diff) | |
download | lwn-5085607d209102b37b169bc94d0aa39566a9842a.tar.gz lwn-5085607d209102b37b169bc94d0aa39566a9842a.zip |
NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount
If a bulk layout recall or a metadata server reboot coincides with a
umount, then holding a reference to an inode is unsafe unless we
also hold a reference to the super block.
Fixes: fd9a8d7160937 ("NFSv4.1: Fix bulk recall and destroy of layouts")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/nfs/pnfs.h')
-rw-r--r-- | fs/nfs/pnfs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h index 5e80a07b7bea..56659ccce1d8 100644 --- a/fs/nfs/pnfs.h +++ b/fs/nfs/pnfs.h @@ -104,6 +104,7 @@ enum { NFS_LAYOUT_RETURN_REQUESTED, /* Return this layout ASAP */ NFS_LAYOUT_INVALID_STID, /* layout stateid id is invalid */ NFS_LAYOUT_FIRST_LAYOUTGET, /* Serialize first layoutget */ + NFS_LAYOUT_INODE_FREEING, /* The inode is being freed */ }; enum layoutdriver_policy_flags { |