Re: [PATCH 1/6] cifs: make error on lack of a unc= option more explicit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/11/16 Jeff Layton <jlayton@xxxxxxxxxx>:
> 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@xxxxxxxxxx>
> ---
>  fs/cifs/connect.c | 19 +++++--------------
>  1 file changed, 5 insertions(+), 14 deletions(-)
>
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 5c670b9..b9849ac 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;
>         }
>  #endif
> +       if (!vol->UNC) {
> +               cERROR(1, "CIFS mount error: No UNC path (e.g. -o "
> +                       "unc=\\\\192.168.1.100\\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=//192.168.1.100/public) specified");
> -               rc = -EINVAL;
> -               goto out_err;
>         }
>
>         /* see if we already have a matching tcp_ses */
> @@ -2736,9 +2730,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,
>                                 volume_info->UNCip,
>                                 strlen(volume_info->UNCip),
> --
> 1.7.11.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Acked-by: Pavel Shilovsky <piastry@xxxxxxxxxxx>

-- 
Best regards,
Pavel Shilovsky.
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux