]> git.baikalelectronics.ru Git - kernel.git/commit
NFSv4.1 resend LAYOUTGET on data server invalid layout errors
authorAndy Adamson <andros@netapp.com>
Fri, 27 Apr 2012 21:53:53 +0000 (17:53 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 19 May 2012 21:55:33 +0000 (17:55 -0400)
commitcfc532396e814964106483a92749a8b4bd62d108
tree0810bad95fe40c6fbf1a1dc13cb3ba0305ba30d3
parent6f6daae577f53eaea36672cdcbb81b6495b0c42d
NFSv4.1 resend LAYOUTGET on data server invalid layout errors

The "invalid layout" class of errors is handled by destroying the layout and
getting a new layout from the server.  Currently, the layout must be
destroyed before a new layout can be obtained.

This means that all references (e.g.lsegs) to the "to be destroyed" layout
header must be dropped before it can be destroyed. This in turn means waiting
for all in flight RPC's using the old layout as well as draining the data
server session slot table wait queue.

Set the NFS_LAYOUT_INVALID flag to redirect I/O to the MDS while waiting for
the old layout to be destroyed.

Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4filelayout.c
fs/nfs/nfs4filelayout.h
fs/nfs/pnfs.c
fs/nfs/pnfs.h