mount.cifs: add fakemount (-f) and nomtab (-n) flags to mount.cifs
authorShirish Pargaonkar <shirishpargaonkar@gmail.com>
Fri, 6 Feb 2009 13:13:38 +0000 (08:13 -0500)
committerJeff Layton <jlayton@redhat.com>
Fri, 6 Feb 2009 13:13:38 +0000 (08:13 -0500)
...so that these options work correctly when passed in by mount(8).

source3/client/mount.cifs.c

index 9f4d1d3fd06abc558fed15d959af6cfe4f0334d2..df5be846f1bcc40e0ad2faa2ced278ff85581430 100644 (file)
@@ -85,6 +85,7 @@
 
 const char *thisprogram;
 int verboseflag = 0;
+int fakemnt = 0;
 static int got_password = 0;
 static int got_user = 0;
 static int got_domain = 0;
@@ -1103,8 +1104,8 @@ int main(int argc, char ** argv)
                        mount_cifs_usage ();
                        exit(EX_USAGE);
                case 'n':
-                   ++nomtab;
-                   break;
+                       ++nomtab;
+                       break;
                case 'b':
 #ifdef MS_BIND
                        flags |= MS_BIND;
@@ -1209,6 +1210,9 @@ int main(int argc, char ** argv)
                        break;
                case 't':
                        break;
+               case 'f':
+                       ++fakemnt;
+                       break;
                default:
                        printf("unknown mount option %c\n",c);
                        mount_cifs_usage();
@@ -1410,7 +1414,7 @@ mount_retry:
                }
        }
 
-       if (mount(dev_name, mountpoint, "cifs", flags, options)) {
+       if (!fakemnt && mount(dev_name, mountpoint, "cifs", flags, options)) {
                switch (errno) {
                case ECONNREFUSED:
                case EHOSTUNREACH:
@@ -1440,6 +1444,8 @@ mount_retry:
                goto mount_exit;
        }
 
+       if (nomtab)
+               goto mount_exit;
        atexit(unlock_mtab);
        rc = lock_mtab();
        if (rc) {