diff options
| -rw-r--r-- | fs/nfs/super.c | 50 |
1 files changed, 23 insertions, 27 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index ca278b3ff64f..92bbe1de4fcf 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
| @@ -728,6 +728,27 @@ 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) | ||
| 732 | { | ||
| 733 | struct nfs_parsed_mount_data *data; | ||
| 734 | |||
| 735 | data = kzalloc(sizeof(*data), GFP_KERNEL); | ||
| 736 | if (data) { | ||
| 737 | data->flags = flags; | ||
| 738 | data->rsize = NFS_MAX_FILE_IO_SIZE; | ||
| 739 | data->wsize = NFS_MAX_FILE_IO_SIZE; | ||
| 740 | data->acregmin = NFS_DEF_ACREGMIN; | ||
| 741 | data->acregmax = NFS_DEF_ACREGMAX; | ||
| 742 | data->acdirmin = NFS_DEF_ACDIRMIN; | ||
| 743 | data->acdirmax = NFS_DEF_ACDIRMAX; | ||
| 744 | data->nfs_server.port = NFS_UNSPEC_PORT; | ||
| 745 | data->auth_flavors[0] = RPC_AUTH_UNIX; | ||
| 746 | data->auth_flavor_len = 1; | ||
| 747 | data->minorversion = 0; | ||
| 748 | } | ||
| 749 | return data; | ||
| 750 | } | ||
| 751 | |||
| 731 | /* | 752 | /* |
| 732 | * Sanity-check a server address provided by the mount command. | 753 | * Sanity-check a server address provided by the mount command. |
| 733 | * | 754 | * |
| @@ -1637,20 +1658,6 @@ static int nfs_validate_mount_data(void *options, | |||
| 1637 | if (data == NULL) | 1658 | if (data == NULL) |
| 1638 | goto out_no_data; | 1659 | goto out_no_data; |
| 1639 | 1660 | ||
| 1640 | args->flags = (NFS_MOUNT_VER3 | NFS_MOUNT_TCP); | ||
| 1641 | args->rsize = NFS_MAX_FILE_IO_SIZE; | ||
| 1642 | args->wsize = NFS_MAX_FILE_IO_SIZE; | ||
| 1643 | args->acregmin = NFS_DEF_ACREGMIN; | ||
| 1644 | args->acregmax = NFS_DEF_ACREGMAX; | ||
| 1645 | args->acdirmin = NFS_DEF_ACDIRMIN; | ||
| 1646 | args->acdirmax = NFS_DEF_ACDIRMAX; | ||
| 1647 | args->mount_server.port = NFS_UNSPEC_PORT; | ||
| 1648 | args->nfs_server.port = NFS_UNSPEC_PORT; | ||
| 1649 | args->nfs_server.protocol = XPRT_TRANSPORT_TCP; | ||
| 1650 | args->auth_flavors[0] = RPC_AUTH_UNIX; | ||
| 1651 | args->auth_flavor_len = 1; | ||
| 1652 | args->minorversion = 0; | ||
| 1653 | |||
| 1654 | switch (data->version) { | 1661 | switch (data->version) { |
| 1655 | case 1: | 1662 | case 1: |
| 1656 | data->namlen = 0; | 1663 | data->namlen = 0; |
| @@ -2097,7 +2104,7 @@ static int nfs_get_sb(struct file_system_type *fs_type, | |||
| 2097 | }; | 2104 | }; |
| 2098 | int error = -ENOMEM; | 2105 | int error = -ENOMEM; |
| 2099 | 2106 | ||
| 2100 | data = kzalloc(sizeof(*data), GFP_KERNEL); | 2107 | data = nfs_alloc_parsed_mount_data(NFS_MOUNT_VER3 | NFS_MOUNT_TCP); |
| 2101 | mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL); | 2108 | mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL); |
| 2102 | if (data == NULL || mntfh == NULL) | 2109 | if (data == NULL || mntfh == NULL) |
| 2103 | goto out_free_fh; | 2110 | goto out_free_fh; |
| @@ -2365,18 +2372,7 @@ static int nfs4_validate_mount_data(void *options, | |||
| 2365 | if (data == NULL) | 2372 | if (data == NULL) |
| 2366 | goto out_no_data; | 2373 | goto out_no_data; |
| 2367 | 2374 | ||
| 2368 | args->rsize = NFS_MAX_FILE_IO_SIZE; | ||
| 2369 | args->wsize = NFS_MAX_FILE_IO_SIZE; | ||
| 2370 | args->acregmin = NFS_DEF_ACREGMIN; | ||
| 2371 | args->acregmax = NFS_DEF_ACREGMAX; | ||
| 2372 | args->acdirmin = NFS_DEF_ACDIRMIN; | ||
| 2373 | args->acdirmax = NFS_DEF_ACDIRMAX; | ||
| 2374 | args->nfs_server.port = NFS_UNSPEC_PORT; | ||
| 2375 | args->auth_flavors[0] = RPC_AUTH_UNIX; | ||
| 2376 | args->auth_flavor_len = 1; | ||
| 2377 | args->version = 4; | 2375 | args->version = 4; |
| 2378 | args->minorversion = 0; | ||
| 2379 | |||
| 2380 | switch (data->version) { | 2376 | switch (data->version) { |
| 2381 | case 1: | 2377 | case 1: |
| 2382 | if (data->host_addrlen > sizeof(args->nfs_server.address)) | 2378 | if (data->host_addrlen > sizeof(args->nfs_server.address)) |
| @@ -2659,7 +2655,7 @@ static int nfs4_get_sb(struct file_system_type *fs_type, | |||
| 2659 | struct nfs_parsed_mount_data *data; | 2655 | struct nfs_parsed_mount_data *data; |
| 2660 | int error = -ENOMEM; | 2656 | int error = -ENOMEM; |
| 2661 | 2657 | ||
| 2662 | data = kzalloc(sizeof(*data), GFP_KERNEL); | 2658 | data = nfs_alloc_parsed_mount_data(0); |
| 2663 | if (data == NULL) | 2659 | if (data == NULL) |
| 2664 | goto out_free_data; | 2660 | goto out_free_data; |
| 2665 | 2661 | ||
