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

Shirish Pargaonkar shirishpargaonkar at gmail.com
Thu Feb 5 05:09:12 GMT 2009


On Tue, Feb 3, 2009 at 7:25 PM, Jeff Layton <jlayton at redhat.com> wrote:
> 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>
>

Modified patch as per Jeff's comments.  Also added -n option functionality.

Regards,

Shirish
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fakemount.2.patch
Type: application/octet-stream
Size: 872 bytes
Desc: not available
Url : http://lists.samba.org/archive/linux-cifs-client/attachments/20090204/b30c2cc9/fakemount.2-0001.obj


More information about the linux-cifs-client mailing list