Here are some patches that move Linux towards client side support for NFSv4.0 migration. An earlier version of this patch set was demonstrated at Connectathon 2011. Think of this post as a request for architectural review. This set currently supports recovering from NFS4ERR_MOVED, and has rudimentary support for NFS4ERR_LEASE_MOVED. Recent versions of this set have been tested with the prototype Solaris server migration implementation (though this specific version of the set has not been tested). By default, the Solaris server implementation migrates state, so state recovery after migration in this client is not yet supported or tested. It may work, somewhat, for certain nicely behaving cases. There are still some protocol questions around state recovery after migration, most immediately involving how clients should communicate new callback endpoint information to the destination server in such a way that existing leases are not broken. In addition, the Solaris server implementation does not yet support minor version 1, so this set has minor version 1 support sketched in, but not fully implemented or tested. These patches are on top of 2.6.38-rc8 with Trond's transport swapping patches. A full git repo with all these patches is available here: http://git.linux-nfs.org/?p=cel/cel-2.6.git;a=commit;h=18d7665fd9c89268b4e15637df86e3b0c7144b29 This commit is tag "cel-03102011-1022". --- Chuck Lever (8): NFS: Implement support for NFS4ERR_LEASE_MOVED NFS: Add migration recovery callouts in nfs4proc.c NFS: Remove "const" from "struct nfs_server *" fields NFS: Add basic migration support to state manager thread NFS: Add functions to swap transports during migration recovery NFS: Introduce nfs4_proc_get_mig_status() NFS: Save root file handle in nfs_server NFS: Add a lame client-side function to display file handles fs/nfs/client.c | 2 + fs/nfs/getroot.c | 6 ++ fs/nfs/inode.c | 44 ++++++++++++ fs/nfs/internal.h | 2 + fs/nfs/nfs4_fs.h | 6 ++ fs/nfs/nfs4namespace.c | 162 +++++++++++++++++++++++++++++++++++++++++++++ fs/nfs/nfs4proc.c | 125 ++++++++++++++++++++++++++++++----- fs/nfs/nfs4state.c | 150 ++++++++++++++++++++++++++++++++++++++++-- fs/nfs/nfs4xdr.c | 81 ++++++++++++++++++++++- include/linux/nfs4.h | 1 include/linux/nfs_fs.h | 13 ++++ include/linux/nfs_fs_sb.h | 6 ++ include/linux/nfs_xdr.h | 35 ++++++---- 13 files changed, 593 insertions(+), 40 deletions(-) -- Chuck Lever <chuck.lever@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html