path: root/fs/cifs
diff options
authorJeff Layton <jlayton@redhat.com>2012-11-25 08:00:42 -0500
committerSteve French <smfrench@gmail.com>2012-12-05 13:13:12 -0600
commite5e69abd058b3fcfd484dbe1c632347332cda9b6 (patch)
tree9661d41d54584dba6442e8bac802eca587a3fd5c /fs/cifs
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/cifs')
1 files changed, 5 insertions, 14 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 32fb50e7932..a48387265cd 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,
goto cifs_parse_mount_err;
+ if (!vol->UNC) {
+ cERROR(1, "CIFS mount error: No UNC path (e.g. -o "
+ "unc=\\\\\\public) specified");
+ goto cifs_parse_mount_err;
+ }
if (vol->UNCip == NULL)
vol->UNCip = &vol->UNC[2];
@@ -2070,17 +2075,6 @@ cifs_get_tcp_session(struct smb_vol *volume_info)
rc = -EINVAL;
goto out_err;
- } else if (volume_info->UNCip) {
- /* BB using ip addr as tcp_ses name to connect to the
- DFS root below */
- cERROR(1, "Connecting to DFS root not implemented yet");
- rc = -EINVAL;
- goto out_err;
- } else /* which tcp_sess DFS root would we conect to */ {
- cERROR(1, "CIFS mount error: No UNC path (e.g. -o "
- "unc=// specified");
- rc = -EINVAL;
- goto out_err;
/* see if we already have a matching tcp_ses */
@@ -2726,9 +2720,6 @@ cifs_match_super(struct super_block *sb, void *data)
volume_info = mnt_data->vol;
- if (!volume_info->UNCip || !volume_info->UNC)
- goto out;
rc = cifs_fill_sockaddr((struct sockaddr *)&addr,