NFS: Add nfs4_update_server
New function nfs4_update_server() moves an nfs_server to a different nfs_client. This is done as part of migration recovery. Though it may be appealing to think of them as the same thing, migration recovery is not the same as following a referral. For a referral, the client has not descended into the file system yet: it has no nfs_server, no super block, no inodes or open state. It is enough to simply instantiate the nfs_server and super block, and perform a referral mount. For a migration, however, we have all of those things already, and they have to be moved to a different nfs_client. No local namespace changes are needed here. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:

committed by
Trond Myklebust

parent
40b00b6b17
commit
32e62b7c3e
@@ -945,7 +945,7 @@ void nfs_server_insert_lists(struct nfs_server *server)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nfs_server_insert_lists);
|
||||
|
||||
static void nfs_server_remove_lists(struct nfs_server *server)
|
||||
void nfs_server_remove_lists(struct nfs_server *server)
|
||||
{
|
||||
struct nfs_client *clp = server->nfs_client;
|
||||
struct nfs_net *nn;
|
||||
@@ -962,6 +962,7 @@ static void nfs_server_remove_lists(struct nfs_server *server)
|
||||
|
||||
synchronize_rcu();
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nfs_server_remove_lists);
|
||||
|
||||
/*
|
||||
* Allocate and initialise a server record
|
||||
|
Reference in New Issue
Block a user