diff options
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, */ |