]> git.baikalelectronics.ru Git - kernel.git/commit
pnfs: avoid using stale stateids after layoutreturn
authorChristoph Hellwig <hch@lst.de>
Thu, 21 Aug 2014 16:09:22 +0000 (11:09 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 10 Sep 2014 19:47:01 +0000 (12:47 -0700)
commitb12eb3e9ed0c64f882033fcf04fb46705f209c5b
tree654dab2b331441f3a823a33ad1912578459f6cd9
parent6eee54f99773f42d864e7867750bc523ffbd0655
pnfs: avoid using stale stateids after layoutreturn

After we issued a layoutreturn operations the may free the layout stateid
and will thus cause bad stateid error when the client uses it again.

We currently try to avoid this case by chosing the open stateid if not
lsegs are present for this inode.  But various places can hold refererence
on lsegs and thus cause the list not to be empty shortly after a layout
return.  Add an explicit flag to mark the current layout stateid invalid
and force usage of the openstateid after we did a full file layoutreturn.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pnfs.c
fs/nfs/pnfs.h