diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-11 19:39:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-11 19:39:11 -0400 |
commit | 86d710146fb9975f04c505ec78caa43d227c1018 (patch) | |
tree | c7f95412b7760e6b7e3c15eab8b2ac944256d7ac /fs/nfs/client.c | |
parent | 86373435d2299b722ec87c416005953215f049c1 (diff) | |
parent | ab3bbaa8b257845e248e9a01d12a69ca245f4197 (diff) |
Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (87 commits)
NFSv4: Disallow 'mount -t nfs4 -overs=2' and 'mount -t nfs4 -overs=3'
NFS: Allow the "nfs" file system type to support NFSv4
NFS: Move details of nfs4_get_sb() to a helper
NFS: Refactor NFSv4 text-based mount option validation
NFS: Mount option parser should detect missing "port="
NFS: out of date comment regarding O_EXCL above nfs3_proc_create()
NFS: Handle a zero-length auth flavor list
SUNRPC: Ensure that sunrpc gets initialised before nfs, lockd, etc...
nfs: fix compile error in rpc_pipefs.h
nfs: Remove reference to generic_osync_inode from a comment
SUNRPC: cache must take a reference to the cache detail's module on open()
NFS: Use the DNS resolver in the mount code.
NFS: Add a dns resolver for use with NFSv4 referrals and migration
SUNRPC: Fix a typo in cache_pipefs_files
nfs: nfs4xdr: optimize low level decoding
nfs: nfs4xdr: get rid of READ_BUF
nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inline
nfs: nfs4xdr: get rid of COPYMEM
nfs: nfs4xdr: introduce decode_sessionid helper
nfs: nfs4xdr: introduce decode_verifier helper
...
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r-- | fs/nfs/client.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index c6be84a161f6..e350bd6a2334 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -809,6 +809,9 @@ static int nfs_init_server(struct nfs_server *server, | |||
809 | /* Initialise the client representation from the mount data */ | 809 | /* Initialise the client representation from the mount data */ |
810 | server->flags = data->flags; | 810 | server->flags = data->flags; |
811 | server->options = data->options; | 811 | server->options = data->options; |
812 | server->caps |= NFS_CAP_HARDLINKS|NFS_CAP_SYMLINKS|NFS_CAP_FILEID| | ||
813 | NFS_CAP_MODE|NFS_CAP_NLINK|NFS_CAP_OWNER|NFS_CAP_OWNER_GROUP| | ||
814 | NFS_CAP_ATIME|NFS_CAP_CTIME|NFS_CAP_MTIME; | ||
812 | 815 | ||
813 | if (data->rsize) | 816 | if (data->rsize) |
814 | server->rsize = nfs_block_size(data->rsize, NULL); | 817 | server->rsize = nfs_block_size(data->rsize, NULL); |
@@ -1075,10 +1078,6 @@ struct nfs_server *nfs_create_server(const struct nfs_parsed_mount_data *data, | |||
1075 | (unsigned long long) server->fsid.major, | 1078 | (unsigned long long) server->fsid.major, |
1076 | (unsigned long long) server->fsid.minor); | 1079 | (unsigned long long) server->fsid.minor); |
1077 | 1080 | ||
1078 | BUG_ON(!server->nfs_client); | ||
1079 | BUG_ON(!server->nfs_client->rpc_ops); | ||
1080 | BUG_ON(!server->nfs_client->rpc_ops->file_inode_ops); | ||
1081 | |||
1082 | spin_lock(&nfs_client_lock); | 1081 | spin_lock(&nfs_client_lock); |
1083 | list_add_tail(&server->client_link, &server->nfs_client->cl_superblocks); | 1082 | list_add_tail(&server->client_link, &server->nfs_client->cl_superblocks); |
1084 | list_add_tail(&server->master_link, &nfs_volume_list); | 1083 | list_add_tail(&server->master_link, &nfs_volume_list); |
@@ -1275,7 +1274,7 @@ static int nfs4_init_server(struct nfs_server *server, | |||
1275 | 1274 | ||
1276 | /* Initialise the client representation from the mount data */ | 1275 | /* Initialise the client representation from the mount data */ |
1277 | server->flags = data->flags; | 1276 | server->flags = data->flags; |
1278 | server->caps |= NFS_CAP_ATOMIC_OPEN; | 1277 | server->caps |= NFS_CAP_ATOMIC_OPEN|NFS_CAP_CHANGE_ATTR; |
1279 | server->options = data->options; | 1278 | server->options = data->options; |
1280 | 1279 | ||
1281 | /* Get a client record */ | 1280 | /* Get a client record */ |
@@ -1360,10 +1359,6 @@ struct nfs_server *nfs4_create_server(const struct nfs_parsed_mount_data *data, | |||
1360 | if (server->namelen == 0 || server->namelen > NFS4_MAXNAMLEN) | 1359 | if (server->namelen == 0 || server->namelen > NFS4_MAXNAMLEN) |
1361 | server->namelen = NFS4_MAXNAMLEN; | 1360 | server->namelen = NFS4_MAXNAMLEN; |
1362 | 1361 | ||
1363 | BUG_ON(!server->nfs_client); | ||
1364 | BUG_ON(!server->nfs_client->rpc_ops); | ||
1365 | BUG_ON(!server->nfs_client->rpc_ops->file_inode_ops); | ||
1366 | |||
1367 | spin_lock(&nfs_client_lock); | 1362 | spin_lock(&nfs_client_lock); |
1368 | list_add_tail(&server->client_link, &server->nfs_client->cl_superblocks); | 1363 | list_add_tail(&server->client_link, &server->nfs_client->cl_superblocks); |
1369 | list_add_tail(&server->master_link, &nfs_volume_list); | 1364 | list_add_tail(&server->master_link, &nfs_volume_list); |
@@ -1401,7 +1396,7 @@ struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *data, | |||
1401 | 1396 | ||
1402 | /* Initialise the client representation from the parent server */ | 1397 | /* Initialise the client representation from the parent server */ |
1403 | nfs_server_copy_userdata(server, parent_server); | 1398 | nfs_server_copy_userdata(server, parent_server); |
1404 | server->caps |= NFS_CAP_ATOMIC_OPEN; | 1399 | server->caps |= NFS_CAP_ATOMIC_OPEN|NFS_CAP_CHANGE_ATTR; |
1405 | 1400 | ||
1406 | /* Get a client representation. | 1401 | /* Get a client representation. |
1407 | * Note: NFSv4 always uses TCP, */ | 1402 | * Note: NFSv4 always uses TCP, */ |