]> www.infradead.org Git - users/jedix/linux-maple.git/commit
NFSv4.1: Use seqid returned by EXCHANGE_ID after state migration
authorChuck Lever <chuck.lever@oracle.com>
Thu, 1 Jun 2017 16:03:38 +0000 (12:03 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Tue, 22 Aug 2017 18:31:33 +0000 (11:31 -0700)
commitcbba8c4a05d643e07543b9d48b8ce619bcba8e9e
tree9e1cebe02b2057c93758821b5e3d0c9a5fb27563
parentdc0e781c6aa05e2c5758f44e64b215bc4d144b43
NFSv4.1: Use seqid returned by EXCHANGE_ID after state migration

Transparent State Migration copies a client's lease state from the
server where a filesystem used to reside to the server where it now
resides. When an NFSv4.1 client first contacts that destination
server, it uses EXCHANGE_ID to detect trunking relationships.

The lease that was copied there is returned to that client, but the
destination server sets EXCHGID4_FLAG_CONFIRMED_R when replying to
the client. This is because the lease was confirmed on the source
server (before it was copied).

Normally, when CONFIRMED_R is set, a client purges the lease and
creates a new one. However, that throws away the entire benefit of
Transparent State Migration.

Therefore, the client must use the contrived slot sequence value
returned by the destination server for its first CREATE_SESSION
operation after a Transparent State Migration.

Orabug: 25802443
Reported-by: Xuan Qi <xuan.qi@oracle.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
(hand picked mainline 838edb9 NFSv4.1: Use seqid returned ...)
Signed-off-by: Manjunath Patil <manjunath.b.patil@oracle.com>
fs/nfs/nfs4proc.c