Files
android_kernel_xiaomi_sm8450/fs/nfs
Trond Myklebust 4ff376feaf NFSv4.1/pnfs: Fix a close/delegreturn hang when return-on-close is set
The helper pnfs_roc() has already verified that we have no delegations,
and no further open files, hence no outstanding I/O and it has marked
all the return-on-close lsegs as being invalid.
Furthermore, it sets the NFS_LAYOUT_RETURN bit, thus serialising the
close/delegreturn with all future layoutget calls on this inode.

The checks in pnfs_roc_drain() for valid layout segments are therefore
redundant: those cannot exist until another layoutget completes.
The other check for whether or not NFS_LAYOUT_RETURN is set, actually
causes a hang, since we already know that we hold that flag.

To fix, we therefore strip out all the functionality in pnfs_roc_drain()
except the retrieval of the barrier state, and then rename the function
accordingly.

Reported-by: Christoph Hellwig <hch@infradead.org>
Fixes: 5c4a79fb2b ("Don't prevent layoutgets when doing return-on-close")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2015-08-18 23:23:21 -05:00
..
2013-06-08 16:20:18 -04:00
2015-04-23 15:16:27 -04:00
2015-04-23 15:16:14 -04:00
2012-07-30 19:06:41 -04:00
2015-02-03 11:06:34 -08:00
2015-04-23 15:16:14 -04:00
2015-04-23 15:16:14 -04:00
2012-07-30 19:06:52 -04:00
2015-01-30 20:43:30 -05:00
2015-08-17 13:36:32 -05:00