diff options
author | Ricardo Labiaga <Ricardo.Labiaga@netapp.com> | 2010-10-20 00:17:58 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-10-24 18:07:10 -0400 |
commit | 85e174ba6b786ad336eb2df105b4f66d0932e70a (patch) | |
tree | eec6b01d897e85c47471f4166201676001c9fd21 /fs/nfs/client.c | |
parent | 504913fbc84c00bba7224d73e4aab525c1731f7d (diff) |
NFS: set layout driver
Put in the infrastructure that uses information returned from the
server at mount to select a layout driver module.
In this patch, a stub is used that always returns "no driver found".
Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
Signed-off-by: Dean Hildebrand <dhildebz@umich.edu>
Signed-off-by: Marc Eshel <eshel@almaden.ibm.com>
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r-- | fs/nfs/client.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index a63bce8d0596..eba0bcc1bab0 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include "iostat.h" | 48 | #include "iostat.h" |
49 | #include "internal.h" | 49 | #include "internal.h" |
50 | #include "fscache.h" | 50 | #include "fscache.h" |
51 | #include "pnfs.h" | ||
51 | 52 | ||
52 | #define NFSDBG_FACILITY NFSDBG_CLIENT | 53 | #define NFSDBG_FACILITY NFSDBG_CLIENT |
53 | 54 | ||
@@ -900,6 +901,8 @@ static void nfs_server_set_fsinfo(struct nfs_server *server, struct nfs_fsinfo * | |||
900 | if (server->wsize > NFS_MAX_FILE_IO_SIZE) | 901 | if (server->wsize > NFS_MAX_FILE_IO_SIZE) |
901 | server->wsize = NFS_MAX_FILE_IO_SIZE; | 902 | server->wsize = NFS_MAX_FILE_IO_SIZE; |
902 | server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; | 903 | server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; |
904 | set_pnfs_layoutdriver(server, fsinfo->layouttype); | ||
905 | |||
903 | server->wtmult = nfs_block_bits(fsinfo->wtmult, NULL); | 906 | server->wtmult = nfs_block_bits(fsinfo->wtmult, NULL); |
904 | 907 | ||
905 | server->dtsize = nfs_block_size(fsinfo->dtpref, NULL); | 908 | server->dtsize = nfs_block_size(fsinfo->dtpref, NULL); |
@@ -939,6 +942,7 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str | |||
939 | } | 942 | } |
940 | 943 | ||
941 | fsinfo.fattr = fattr; | 944 | fsinfo.fattr = fattr; |
945 | fsinfo.layouttype = 0; | ||
942 | error = clp->rpc_ops->fsinfo(server, mntfh, &fsinfo); | 946 | error = clp->rpc_ops->fsinfo(server, mntfh, &fsinfo); |
943 | if (error < 0) | 947 | if (error < 0) |
944 | goto out_error; | 948 | goto out_error; |
@@ -1021,6 +1025,7 @@ void nfs_free_server(struct nfs_server *server) | |||
1021 | { | 1025 | { |
1022 | dprintk("--> nfs_free_server()\n"); | 1026 | dprintk("--> nfs_free_server()\n"); |
1023 | 1027 | ||
1028 | unset_pnfs_layoutdriver(server); | ||
1024 | spin_lock(&nfs_client_lock); | 1029 | spin_lock(&nfs_client_lock); |
1025 | list_del(&server->client_link); | 1030 | list_del(&server->client_link); |
1026 | list_del(&server->master_link); | 1031 | list_del(&server->master_link); |