[patch][linux-cifs-client] add fake mount option (-f) to mount.cifs

Jeff Layton jlayton at redhat.com
Wed Feb 4 01:25:54 GMT 2009


On Mon, 2 Feb 2009 13:33:37 -0600
Shirish Pargaonkar <shirishpargaonkar at gmail.com> wrote:

> --- client.orig/mount.cifs.c	2009-02-02 06:59:20.000000000 -0600
> +++ client/mount.cifs.c	2009-02-02 07:06:51.000000000 -0600
> @@ -85,6 +85,7 @@
>  
>  const char *thisprogram;
>  int verboseflag = 0;
> +int fakemntflag = 0;
>  static int got_password = 0;
>  static int got_user = 0;
>  static int got_domain = 0;
> @@ -1210,6 +1211,7 @@ int main(int argc, char ** argv)
>  		case 't':
>  			break;
>  		case 'f':
> +			++fakemntflag;
>  			break;
>  		default:
>  			printf("unknown mount option %c\n",c);
> @@ -1262,6 +1264,11 @@ int main(int argc, char ** argv)
>  		goto mount_exit;
>  	}
>  
> +	if (fakemntflag) {
> +		rc = 0;
> +		goto mount_exit;
> +	}
> +
>  	if(stat (".", &statbuf)) {
>  		printf("mount error: mount point %s does not exist\n",mountpoint);
>  		rc = EX_USAGE;

This doesn't look right. You have the fakemntflag check happening very
early and making it shortcut a large chunk of the mount process. To
quote mount(8):

       -f     Causes  everything to be done except for the actual system call;
              if it’s not obvious, this ‘‘fakes’’ mounting  the  file  system.
              This  option is useful in conjunction with the -v flag to deter-
              mine what the mount command is trying to do. It can also be used
              to add entries for devices that were mounted earlier with the -n
              option. The -f option checks for existing  record  in  /etc/mtab
              and  fails when the record already exists (with regular non-fake
              mount, this check is done by kernel).


...ok, so the last part of this sounds bogus (I doubt the kernel
checks /etc/mtab), but the main point is that we don't want to skip
adding the mtab entry since that's pretty fundamental.

I suggest just making fakemntflag skip the mount() syscall and just 
assume that it succeeded when it's set.

-- 
Jeff Layton <jlayton at redhat.com>


More information about the linux-cifs-client mailing list