aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2012-11-25 08:00:42 -0500
committerSteve French <smfrench@gmail.com>2012-12-05 14:13:12 -0500
commite5e69abd058b3fcfd484dbe1c632347332cda9b6 (patch)
tree9661d41d54584dba6442e8bac802eca587a3fd5c /fs
parentd3d1fce11dbbf4246f1c37839b13757f08aec3b7 (diff)
cifs: make error on lack of a unc= option more explicit
Error out with a clear error message if there is no unc= option. The existing code doesn't handle this in a clear fashion, and the check for a UNCip option with no UNC string is just plain wrong. Later, we'll fix the code to not require a unc= option, but for now we need this to at least clarify why people are getting errors about DFS parsing. With this change we can also get rid of some later NULL pointer checks since we know the UNC and UNCip will never be NULL there. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/cifs/connect.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 32fb50e7932b..a48387265cd4 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1799,6 +1799,11 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
1799 goto cifs_parse_mount_err; 1799 goto cifs_parse_mount_err;
1800 } 1800 }
1801#endif 1801#endif
1802 if (!vol->UNC) {
1803 cERROR(1, "CIFS mount error: No UNC path (e.g. -o "
1804 "unc=\\\\192.168.1.100\\public) specified");
1805 goto cifs_parse_mount_err;
1806 }
1802 1807
1803 if (vol->UNCip == NULL) 1808 if (vol->UNCip == NULL)
1804 vol->UNCip = &vol->UNC[2]; 1809 vol->UNCip = &vol->UNC[2];
@@ -2070,17 +2075,6 @@ cifs_get_tcp_session(struct smb_vol *volume_info)
2070 rc = -EINVAL; 2075 rc = -EINVAL;
2071 goto out_err; 2076 goto out_err;
2072 } 2077 }
2073 } else if (volume_info->UNCip) {
2074 /* BB using ip addr as tcp_ses name to connect to the
2075 DFS root below */
2076 cERROR(1, "Connecting to DFS root not implemented yet");
2077 rc = -EINVAL;
2078 goto out_err;
2079 } else /* which tcp_sess DFS root would we conect to */ {
2080 cERROR(1, "CIFS mount error: No UNC path (e.g. -o "
2081 "unc=//192.168.1.100/public) specified");
2082 rc = -EINVAL;
2083 goto out_err;
2084 } 2078 }
2085 2079
2086 /* see if we already have a matching tcp_ses */ 2080 /* see if we already have a matching tcp_ses */
@@ -2726,9 +2720,6 @@ cifs_match_super(struct super_block *sb, void *data)
2726 2720
2727 volume_info = mnt_data->vol; 2721 volume_info = mnt_data->vol;
2728 2722
2729 if (!volume_info->UNCip || !volume_info->UNC)
2730 goto out;
2731
2732 rc = cifs_fill_sockaddr((struct sockaddr *)&addr, 2723 rc = cifs_fill_sockaddr((struct sockaddr *)&addr,
2733 volume_info->UNCip, 2724 volume_info->UNCip,
2734 strlen(volume_info->UNCip), 2725 strlen(volume_info->UNCip),