On Wed, 6 Apr 2011 10:46:55 +0200 Luk Claes <luk@xxxxxxxxxx> wrote: > Don't construct a device name, but use the original device string > to mount so the device name in /proc/mounts matches the one in > /etc/fstab. > > Signed-off-by: Luk Claes <luk@xxxxxxxxxx> > --- > mount.cifs.c | 27 +++------------------------ > 1 files changed, 3 insertions(+), 24 deletions(-) > > diff --git a/mount.cifs.c b/mount.cifs.c > index 8e1e32b..29b0d4c 100644 > --- a/mount.cifs.c > +++ b/mount.cifs.c > @@ -1673,12 +1673,11 @@ int main(int argc, char **argv) > char *orgoptions = NULL; > char *mountpoint = NULL; > char *options = NULL; > - char *dev_name = NULL, *orig_dev = NULL; > + char *orig_dev = NULL; > char *currentaddress, *nextaddress; > int rc = 0; > int already_uppercased = 0; > size_t options_size = MAX_OPTIONS_LEN; > - size_t dev_len; > struct parsed_mount_info *parsed_info = NULL; > pid_t pid; > const char *fstype; > @@ -1823,25 +1822,6 @@ int main(int argc, char **argv) > goto mount_exit; > } > > - /* lengths of different strings + slashes + trailing \0 */ > - dev_len = strnlen(parsed_info->host, sizeof(parsed_info->host)) + > - strnlen(parsed_info->share, sizeof(parsed_info->share)) + > - strnlen(parsed_info->prefix, sizeof(parsed_info->prefix)) + > - 2 + 1 + 1 + 1; > - dev_name = calloc(dev_len, 1); > - if (!dev_name) { > - rc = EX_SYSERR; > - goto mount_exit; > - } > - > - /* rebuild device name with forward slashes */ > - strlcpy(dev_name, "//", dev_len); > - strlcat(dev_name, parsed_info->host, dev_len); > - strlcat(dev_name, "/", dev_len); > - strlcat(dev_name, parsed_info->share, dev_len); > - strlcat(dev_name, "/", dev_len); > - strlcat(dev_name, parsed_info->prefix, dev_len); > - > currentaddress = parsed_info->addrlist; > nextaddress = strchr(currentaddress, ','); > if (nextaddress) > @@ -1889,7 +1869,7 @@ mount_retry: > if (parsed_info->verboseflag) > fprintf(stderr, "\n"); > > - rc = check_mtab(thisprogram, dev_name, mountpoint); > + rc = check_mtab(thisprogram, orig_dev, mountpoint); > if (rc) > goto mount_exit; > > @@ -1900,7 +1880,7 @@ mount_retry: > > if (!parsed_info->fakemnt) { > toggle_dac_capability(0, 1); > - rc = mount(dev_name, ".", fstype, parsed_info->flags, options); > + rc = mount(orig_dev, ".", fstype, parsed_info->flags, options); > toggle_dac_capability(0, 0); > if (rc == 0) > goto do_mtab; > @@ -1948,7 +1928,6 @@ mount_exit: > memset(parsed_info->password, 0, sizeof(parsed_info->password)); > munmap(parsed_info, sizeof(*parsed_info)); > } > - SAFE_FREE(dev_name); > SAFE_FREE(options); > SAFE_FREE(orgoptions); > return rc; Looks good to me, thanks. Committed. Should make 4.10 (or whatever we'll call the next release). -- Jeff Layton <jlayton@xxxxxxxxx> -- 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