diff options
Diffstat (limited to 'fs/nfs')
| -rw-r--r-- | fs/nfs/client.c | 2 | ||||
| -rw-r--r-- | fs/nfs/dir.c | 2 | ||||
| -rw-r--r-- | fs/nfs/direct.c | 1 | ||||
| -rw-r--r-- | fs/nfs/file.c | 4 | ||||
| -rw-r--r-- | fs/nfs/nfs4namespace.c | 12 | ||||
| -rw-r--r-- | fs/nfs/nfs4proc.c | 15 | ||||
| -rw-r--r-- | fs/nfs/nfs4renewd.c | 6 | ||||
| -rw-r--r-- | fs/nfs/nfs4xdr.c | 1 | ||||
| -rw-r--r-- | fs/nfs/super.c | 35 |
9 files changed, 38 insertions, 40 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 63976c0ccc25..99ea196f071f 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
| @@ -1180,7 +1180,7 @@ static int nfs4_init_client(struct nfs_client *clp, | |||
| 1180 | 1, flags & NFS_MOUNT_NORESVPORT); | 1180 | 1, flags & NFS_MOUNT_NORESVPORT); |
| 1181 | if (error < 0) | 1181 | if (error < 0) |
| 1182 | goto error; | 1182 | goto error; |
| 1183 | memcpy(clp->cl_ipaddr, ip_addr, sizeof(clp->cl_ipaddr)); | 1183 | strlcpy(clp->cl_ipaddr, ip_addr, sizeof(clp->cl_ipaddr)); |
| 1184 | 1184 | ||
| 1185 | error = nfs_idmap_new(clp); | 1185 | error = nfs_idmap_new(clp); |
| 1186 | if (error < 0) { | 1186 | if (error < 0) { |
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 32062c33c859..7cb298525eef 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
| @@ -1536,6 +1536,8 @@ nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) | |||
| 1536 | old_dentry->d_parent->d_name.name, old_dentry->d_name.name, | 1536 | old_dentry->d_parent->d_name.name, old_dentry->d_name.name, |
| 1537 | dentry->d_parent->d_name.name, dentry->d_name.name); | 1537 | dentry->d_parent->d_name.name, dentry->d_name.name); |
| 1538 | 1538 | ||
| 1539 | nfs_inode_return_delegation(inode); | ||
| 1540 | |||
| 1539 | d_drop(dentry); | 1541 | d_drop(dentry); |
| 1540 | error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name); | 1542 | error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name); |
| 1541 | if (error == 0) { | 1543 | if (error == 0) { |
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 6c3210099d51..e1d415e97849 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
| @@ -457,6 +457,7 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq) | |||
| 457 | }; | 457 | }; |
| 458 | struct rpc_task_setup task_setup_data = { | 458 | struct rpc_task_setup task_setup_data = { |
| 459 | .rpc_client = NFS_CLIENT(inode), | 459 | .rpc_client = NFS_CLIENT(inode), |
| 460 | .rpc_message = &msg, | ||
| 460 | .callback_ops = &nfs_write_direct_ops, | 461 | .callback_ops = &nfs_write_direct_ops, |
| 461 | .workqueue = nfsiod_workqueue, | 462 | .workqueue = nfsiod_workqueue, |
| 462 | .flags = RPC_TASK_ASYNC, | 463 | .flags = RPC_TASK_ASYNC, |
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 86d6b4db1096..f5fdd39e037a 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
| @@ -59,7 +59,7 @@ static int nfs_lock(struct file *filp, int cmd, struct file_lock *fl); | |||
| 59 | static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl); | 59 | static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl); |
| 60 | static int nfs_setlease(struct file *file, long arg, struct file_lock **fl); | 60 | static int nfs_setlease(struct file *file, long arg, struct file_lock **fl); |
| 61 | 61 | ||
| 62 | static struct vm_operations_struct nfs_file_vm_ops; | 62 | static const struct vm_operations_struct nfs_file_vm_ops; |
| 63 | 63 | ||
| 64 | const struct file_operations nfs_file_operations = { | 64 | const struct file_operations nfs_file_operations = { |
| 65 | .llseek = nfs_file_llseek, | 65 | .llseek = nfs_file_llseek, |
| @@ -572,7 +572,7 @@ out_unlock: | |||
| 572 | return VM_FAULT_SIGBUS; | 572 | return VM_FAULT_SIGBUS; |
| 573 | } | 573 | } |
| 574 | 574 | ||
| 575 | static struct vm_operations_struct nfs_file_vm_ops = { | 575 | static const struct vm_operations_struct nfs_file_vm_ops = { |
| 576 | .fault = filemap_fault, | 576 | .fault = filemap_fault, |
| 577 | .page_mkwrite = nfs_vm_page_mkwrite, | 577 | .page_mkwrite = nfs_vm_page_mkwrite, |
| 578 | }; | 578 | }; |
diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c index 2636c26d56fa..fa3408f20112 100644 --- a/fs/nfs/nfs4namespace.c +++ b/fs/nfs/nfs4namespace.c | |||
| @@ -121,7 +121,7 @@ static struct vfsmount *try_location(struct nfs_clone_mount *mountdata, | |||
| 121 | 121 | ||
| 122 | mnt_path = nfs4_pathname_string(&location->rootpath, page2, PAGE_SIZE); | 122 | mnt_path = nfs4_pathname_string(&location->rootpath, page2, PAGE_SIZE); |
| 123 | if (IS_ERR(mnt_path)) | 123 | if (IS_ERR(mnt_path)) |
| 124 | return mnt; | 124 | return ERR_CAST(mnt_path); |
| 125 | mountdata->mnt_path = mnt_path; | 125 | mountdata->mnt_path = mnt_path; |
| 126 | maxbuflen = mnt_path - 1 - page2; | 126 | maxbuflen = mnt_path - 1 - page2; |
| 127 | 127 | ||
| @@ -132,15 +132,15 @@ static struct vfsmount *try_location(struct nfs_clone_mount *mountdata, | |||
| 132 | if (buf->len <= 0 || buf->len >= maxbuflen) | 132 | if (buf->len <= 0 || buf->len >= maxbuflen) |
| 133 | continue; | 133 | continue; |
| 134 | 134 | ||
| 135 | mountdata->addr = (struct sockaddr *)&addr; | ||
| 136 | |||
| 137 | if (memchr(buf->data, IPV6_SCOPE_DELIMITER, buf->len)) | 135 | if (memchr(buf->data, IPV6_SCOPE_DELIMITER, buf->len)) |
| 138 | continue; | 136 | continue; |
| 139 | mountdata->addrlen = nfs_parse_server_name(buf->data, | 137 | |
| 140 | buf->len, | 138 | mountdata->addrlen = nfs_parse_server_name(buf->data, buf->len, |
| 141 | mountdata->addr, mountdata->addrlen); | 139 | (struct sockaddr *)&addr, sizeof(addr)); |
| 142 | if (mountdata->addrlen == 0) | 140 | if (mountdata->addrlen == 0) |
| 143 | continue; | 141 | continue; |
| 142 | |||
| 143 | mountdata->addr = (struct sockaddr *)&addr; | ||
| 144 | rpc_set_port(mountdata->addr, NFS_PORT); | 144 | rpc_set_port(mountdata->addr, NFS_PORT); |
| 145 | 145 | ||
| 146 | memcpy(page2, buf->data, buf->len); | 146 | memcpy(page2, buf->data, buf->len); |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index ed7c269e2514..ff37454fa783 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
| @@ -72,12 +72,17 @@ static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, | |||
| 72 | /* Prevent leaks of NFSv4 errors into userland */ | 72 | /* Prevent leaks of NFSv4 errors into userland */ |
| 73 | static int nfs4_map_errors(int err) | 73 | static int nfs4_map_errors(int err) |
| 74 | { | 74 | { |
| 75 | if (err < -1000) { | 75 | if (err >= -1000) |
| 76 | return err; | ||
| 77 | switch (err) { | ||
| 78 | case -NFS4ERR_RESOURCE: | ||
| 79 | return -EREMOTEIO; | ||
| 80 | default: | ||
| 76 | dprintk("%s could not handle NFSv4 error %d\n", | 81 | dprintk("%s could not handle NFSv4 error %d\n", |
| 77 | __func__, -err); | 82 | __func__, -err); |
| 78 | return -EIO; | 83 | break; |
| 79 | } | 84 | } |
| 80 | return err; | 85 | return -EIO; |
| 81 | } | 86 | } |
| 82 | 87 | ||
| 83 | /* | 88 | /* |
| @@ -3060,9 +3065,6 @@ static void nfs4_renew_done(struct rpc_task *task, void *data) | |||
| 3060 | if (time_before(clp->cl_last_renewal,timestamp)) | 3065 | if (time_before(clp->cl_last_renewal,timestamp)) |
| 3061 | clp->cl_last_renewal = timestamp; | 3066 | clp->cl_last_renewal = timestamp; |
| 3062 | spin_unlock(&clp->cl_lock); | 3067 | spin_unlock(&clp->cl_lock); |
| 3063 | dprintk("%s calling put_rpccred on rpc_cred %p\n", __func__, | ||
| 3064 | task->tk_msg.rpc_cred); | ||
| 3065 | put_rpccred(task->tk_msg.rpc_cred); | ||
| 3066 | } | 3068 | } |
| 3067 | 3069 | ||
| 3068 | static const struct rpc_call_ops nfs4_renew_ops = { | 3070 | static const struct rpc_call_ops nfs4_renew_ops = { |
| @@ -4877,7 +4879,6 @@ void nfs41_sequence_call_done(struct rpc_task *task, void *data) | |||
| 4877 | nfs41_sequence_free_slot(clp, task->tk_msg.rpc_resp); | 4879 | nfs41_sequence_free_slot(clp, task->tk_msg.rpc_resp); |
| 4878 | dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); | 4880 | dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); |
| 4879 | 4881 | ||
| 4880 | put_rpccred(task->tk_msg.rpc_cred); | ||
| 4881 | kfree(task->tk_msg.rpc_argp); | 4882 | kfree(task->tk_msg.rpc_argp); |
| 4882 | kfree(task->tk_msg.rpc_resp); | 4883 | kfree(task->tk_msg.rpc_resp); |
| 4883 | 4884 | ||
diff --git a/fs/nfs/nfs4renewd.c b/fs/nfs/nfs4renewd.c index e27c6cef18f2..0156c01c212c 100644 --- a/fs/nfs/nfs4renewd.c +++ b/fs/nfs/nfs4renewd.c | |||
| @@ -127,12 +127,6 @@ nfs4_schedule_state_renewal(struct nfs_client *clp) | |||
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | void | 129 | void |
| 130 | nfs4_renewd_prepare_shutdown(struct nfs_server *server) | ||
| 131 | { | ||
| 132 | cancel_delayed_work(&server->nfs_client->cl_renewd); | ||
| 133 | } | ||
| 134 | |||
| 135 | void | ||
| 136 | nfs4_kill_renewd(struct nfs_client *clp) | 130 | nfs4_kill_renewd(struct nfs_client *clp) |
| 137 | { | 131 | { |
| 138 | cancel_delayed_work_sync(&clp->cl_renewd); | 132 | cancel_delayed_work_sync(&clp->cl_renewd); |
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 83ad47cbdd8a..20b4e30e6c82 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
| @@ -5681,7 +5681,6 @@ static struct { | |||
| 5681 | { NFS4ERR_SERVERFAULT, -ESERVERFAULT }, | 5681 | { NFS4ERR_SERVERFAULT, -ESERVERFAULT }, |
| 5682 | { NFS4ERR_BADTYPE, -EBADTYPE }, | 5682 | { NFS4ERR_BADTYPE, -EBADTYPE }, |
| 5683 | { NFS4ERR_LOCKED, -EAGAIN }, | 5683 | { NFS4ERR_LOCKED, -EAGAIN }, |
| 5684 | { NFS4ERR_RESOURCE, -EREMOTEIO }, | ||
| 5685 | { NFS4ERR_SYMLINK, -ELOOP }, | 5684 | { NFS4ERR_SYMLINK, -ELOOP }, |
| 5686 | { NFS4ERR_OP_ILLEGAL, -EOPNOTSUPP }, | 5685 | { NFS4ERR_OP_ILLEGAL, -EOPNOTSUPP }, |
| 5687 | { NFS4ERR_DEADLOCK, -EDEADLK }, | 5686 | { NFS4ERR_DEADLOCK, -EDEADLK }, |
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 810770f96816..90be551b80c1 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
| @@ -728,22 +728,24 @@ static void nfs_umount_begin(struct super_block *sb) | |||
| 728 | unlock_kernel(); | 728 | unlock_kernel(); |
| 729 | } | 729 | } |
| 730 | 730 | ||
| 731 | static struct nfs_parsed_mount_data *nfs_alloc_parsed_mount_data(int flags) | 731 | static struct nfs_parsed_mount_data *nfs_alloc_parsed_mount_data(unsigned int version) |
| 732 | { | 732 | { |
| 733 | struct nfs_parsed_mount_data *data; | 733 | struct nfs_parsed_mount_data *data; |
| 734 | 734 | ||
| 735 | data = kzalloc(sizeof(*data), GFP_KERNEL); | 735 | data = kzalloc(sizeof(*data), GFP_KERNEL); |
| 736 | if (data) { | 736 | if (data) { |
| 737 | data->flags = flags; | ||
| 738 | data->rsize = NFS_MAX_FILE_IO_SIZE; | 737 | data->rsize = NFS_MAX_FILE_IO_SIZE; |
| 739 | data->wsize = NFS_MAX_FILE_IO_SIZE; | 738 | data->wsize = NFS_MAX_FILE_IO_SIZE; |
| 740 | data->acregmin = NFS_DEF_ACREGMIN; | 739 | data->acregmin = NFS_DEF_ACREGMIN; |
| 741 | data->acregmax = NFS_DEF_ACREGMAX; | 740 | data->acregmax = NFS_DEF_ACREGMAX; |
| 742 | data->acdirmin = NFS_DEF_ACDIRMIN; | 741 | data->acdirmin = NFS_DEF_ACDIRMIN; |
| 743 | data->acdirmax = NFS_DEF_ACDIRMAX; | 742 | data->acdirmax = NFS_DEF_ACDIRMAX; |
| 743 | data->mount_server.port = NFS_UNSPEC_PORT; | ||
| 744 | data->nfs_server.port = NFS_UNSPEC_PORT; | 744 | data->nfs_server.port = NFS_UNSPEC_PORT; |
| 745 | data->nfs_server.protocol = XPRT_TRANSPORT_TCP; | ||
| 745 | data->auth_flavors[0] = RPC_AUTH_UNIX; | 746 | data->auth_flavors[0] = RPC_AUTH_UNIX; |
| 746 | data->auth_flavor_len = 1; | 747 | data->auth_flavor_len = 1; |
| 748 | data->version = version; | ||
| 747 | data->minorversion = 0; | 749 | data->minorversion = 0; |
| 748 | } | 750 | } |
| 749 | return data; | 751 | return data; |
| @@ -776,15 +778,13 @@ static int nfs_verify_server_address(struct sockaddr *addr) | |||
| 776 | * Select between a default port value and a user-specified port value. | 778 | * Select between a default port value and a user-specified port value. |
| 777 | * If a zero value is set, then autobind will be used. | 779 | * If a zero value is set, then autobind will be used. |
| 778 | */ | 780 | */ |
| 779 | static void nfs_set_default_port(struct sockaddr *sap, const int parsed_port, | 781 | static void nfs_set_port(struct sockaddr *sap, int *port, |
| 780 | const unsigned short default_port) | 782 | const unsigned short default_port) |
| 781 | { | 783 | { |
| 782 | unsigned short port = default_port; | 784 | if (*port == NFS_UNSPEC_PORT) |
| 785 | *port = default_port; | ||
| 783 | 786 | ||
| 784 | if (parsed_port != NFS_UNSPEC_PORT) | 787 | rpc_set_port(sap, *port); |
| 785 | port = parsed_port; | ||
| 786 | |||
| 787 | rpc_set_port(sap, port); | ||
| 788 | } | 788 | } |
| 789 | 789 | ||
| 790 | /* | 790 | /* |
| @@ -1253,6 +1253,7 @@ static int nfs_parse_mount_options(char *raw, | |||
| 1253 | default: | 1253 | default: |
| 1254 | dfprintk(MOUNT, "NFS: unrecognized " | 1254 | dfprintk(MOUNT, "NFS: unrecognized " |
| 1255 | "transport protocol\n"); | 1255 | "transport protocol\n"); |
| 1256 | kfree(string); | ||
| 1256 | return 0; | 1257 | return 0; |
| 1257 | } | 1258 | } |
| 1258 | break; | 1259 | break; |
| @@ -1475,7 +1476,7 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args, | |||
| 1475 | args->mount_server.addrlen = args->nfs_server.addrlen; | 1476 | args->mount_server.addrlen = args->nfs_server.addrlen; |
| 1476 | } | 1477 | } |
| 1477 | request.salen = args->mount_server.addrlen; | 1478 | request.salen = args->mount_server.addrlen; |
| 1478 | nfs_set_default_port(request.sap, args->mount_server.port, 0); | 1479 | nfs_set_port(request.sap, &args->mount_server.port, 0); |
| 1479 | 1480 | ||
| 1480 | /* | 1481 | /* |
| 1481 | * Now ask the mount server to map our export path | 1482 | * Now ask the mount server to map our export path |
| @@ -1765,7 +1766,7 @@ static int nfs_validate_mount_data(void *options, | |||
| 1765 | goto out_v4_not_compiled; | 1766 | goto out_v4_not_compiled; |
| 1766 | #endif | 1767 | #endif |
| 1767 | 1768 | ||
| 1768 | nfs_set_default_port(sap, args->nfs_server.port, 0); | 1769 | nfs_set_port(sap, &args->nfs_server.port, 0); |
| 1769 | 1770 | ||
| 1770 | nfs_set_mount_transport_protocol(args); | 1771 | nfs_set_mount_transport_protocol(args); |
| 1771 | 1772 | ||
| @@ -1846,9 +1847,10 @@ nfs_compare_remount_data(struct nfs_server *nfss, | |||
| 1846 | data->acdirmin != nfss->acdirmin / HZ || | 1847 | data->acdirmin != nfss->acdirmin / HZ || |
| 1847 | data->acdirmax != nfss->acdirmax / HZ || | 1848 | data->acdirmax != nfss->acdirmax / HZ || |
| 1848 | data->timeo != (10U * nfss->client->cl_timeout->to_initval / HZ) || | 1849 | data->timeo != (10U * nfss->client->cl_timeout->to_initval / HZ) || |
| 1850 | data->nfs_server.port != nfss->port || | ||
| 1849 | data->nfs_server.addrlen != nfss->nfs_client->cl_addrlen || | 1851 | data->nfs_server.addrlen != nfss->nfs_client->cl_addrlen || |
| 1850 | memcmp(&data->nfs_server.address, &nfss->nfs_client->cl_addr, | 1852 | !rpc_cmp_addr((struct sockaddr *)&data->nfs_server.address, |
| 1851 | data->nfs_server.addrlen) != 0) | 1853 | (struct sockaddr *)&nfss->nfs_client->cl_addr)) |
| 1852 | return -EINVAL; | 1854 | return -EINVAL; |
| 1853 | 1855 | ||
| 1854 | return 0; | 1856 | return 0; |
| @@ -1891,6 +1893,7 @@ nfs_remount(struct super_block *sb, int *flags, char *raw_data) | |||
| 1891 | data->acdirmin = nfss->acdirmin / HZ; | 1893 | data->acdirmin = nfss->acdirmin / HZ; |
| 1892 | data->acdirmax = nfss->acdirmax / HZ; | 1894 | data->acdirmax = nfss->acdirmax / HZ; |
| 1893 | data->timeo = 10U * nfss->client->cl_timeout->to_initval / HZ; | 1895 | data->timeo = 10U * nfss->client->cl_timeout->to_initval / HZ; |
| 1896 | data->nfs_server.port = nfss->port; | ||
| 1894 | data->nfs_server.addrlen = nfss->nfs_client->cl_addrlen; | 1897 | data->nfs_server.addrlen = nfss->nfs_client->cl_addrlen; |
| 1895 | memcpy(&data->nfs_server.address, &nfss->nfs_client->cl_addr, | 1898 | memcpy(&data->nfs_server.address, &nfss->nfs_client->cl_addr, |
| 1896 | data->nfs_server.addrlen); | 1899 | data->nfs_server.addrlen); |
| @@ -2104,7 +2107,7 @@ static int nfs_get_sb(struct file_system_type *fs_type, | |||
| 2104 | }; | 2107 | }; |
| 2105 | int error = -ENOMEM; | 2108 | int error = -ENOMEM; |
| 2106 | 2109 | ||
| 2107 | data = nfs_alloc_parsed_mount_data(NFS_MOUNT_VER3 | NFS_MOUNT_TCP); | 2110 | data = nfs_alloc_parsed_mount_data(3); |
| 2108 | mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL); | 2111 | mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL); |
| 2109 | if (data == NULL || mntfh == NULL) | 2112 | if (data == NULL || mntfh == NULL) |
| 2110 | goto out_free_fh; | 2113 | goto out_free_fh; |
| @@ -2329,7 +2332,7 @@ static int nfs4_validate_text_mount_data(void *options, | |||
| 2329 | { | 2332 | { |
| 2330 | struct sockaddr *sap = (struct sockaddr *)&args->nfs_server.address; | 2333 | struct sockaddr *sap = (struct sockaddr *)&args->nfs_server.address; |
| 2331 | 2334 | ||
| 2332 | nfs_set_default_port(sap, args->nfs_server.port, NFS_PORT); | 2335 | nfs_set_port(sap, &args->nfs_server.port, NFS_PORT); |
| 2333 | 2336 | ||
| 2334 | nfs_validate_transport_protocol(args); | 2337 | nfs_validate_transport_protocol(args); |
| 2335 | 2338 | ||
| @@ -2374,7 +2377,6 @@ static int nfs4_validate_mount_data(void *options, | |||
| 2374 | if (data == NULL) | 2377 | if (data == NULL) |
| 2375 | goto out_no_data; | 2378 | goto out_no_data; |
| 2376 | 2379 | ||
| 2377 | args->version = 4; | ||
| 2378 | switch (data->version) { | 2380 | switch (data->version) { |
| 2379 | case 1: | 2381 | case 1: |
| 2380 | if (data->host_addrlen > sizeof(args->nfs_server.address)) | 2382 | if (data->host_addrlen > sizeof(args->nfs_server.address)) |
| @@ -2658,7 +2660,7 @@ static int nfs4_get_sb(struct file_system_type *fs_type, | |||
| 2658 | struct nfs_parsed_mount_data *data; | 2660 | struct nfs_parsed_mount_data *data; |
| 2659 | int error = -ENOMEM; | 2661 | int error = -ENOMEM; |
| 2660 | 2662 | ||
| 2661 | data = nfs_alloc_parsed_mount_data(0); | 2663 | data = nfs_alloc_parsed_mount_data(4); |
| 2662 | if (data == NULL) | 2664 | if (data == NULL) |
| 2663 | goto out_free_data; | 2665 | goto out_free_data; |
| 2664 | 2666 | ||
| @@ -2688,7 +2690,6 @@ static void nfs4_kill_super(struct super_block *sb) | |||
| 2688 | dprintk("--> %s\n", __func__); | 2690 | dprintk("--> %s\n", __func__); |
| 2689 | nfs_super_return_all_delegations(sb); | 2691 | nfs_super_return_all_delegations(sb); |
| 2690 | kill_anon_super(sb); | 2692 | kill_anon_super(sb); |
| 2691 | nfs4_renewd_prepare_shutdown(server); | ||
| 2692 | nfs_fscache_release_super_cookie(sb); | 2693 | nfs_fscache_release_super_cookie(sb); |
| 2693 | nfs_free_server(server); | 2694 | nfs_free_server(server); |
| 2694 | dprintk("<-- %s\n", __func__); | 2695 | dprintk("<-- %s\n", __func__); |
