use getvfsbyname to find filesystem type number
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 5 May 1995 07:56:35 +0000 (23:56 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 5 May 1995 07:56:35 +0000 (23:56 -0800)
SCCS-vsn: usr.bin/find/function.c 8.10

usr/src/usr.bin/find/function.c

index 28ff31a..682b413 100644 (file)
@@ -9,7 +9,7 @@
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)function.c 8.9 (Berkeley) %G%";
+static char sccsid[] = "@(#)function.c 8.10 (Berkeley) %G%";
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -370,10 +370,21 @@ c_fstype(arg)
        char *arg;
 {
        register PLAN *new;
+       struct vfsconf vfc;
     
        ftsoptions &= ~FTS_NOSTAT;
     
        new = palloc(N_FSTYPE, f_fstype);
+
+       /*
+        * Check first for a filesystem name.
+        */
+       if (getvfsbyname(arg, &vfc) == 0) {
+               new->flags = F_MTTYPE;
+               new->mt_data = vfc.vfc_typenum;
+               return (new);
+       }
+
        switch (*arg) {
        case 'l':
                if (!strcmp(arg, "local")) {
@@ -382,27 +393,6 @@ c_fstype(arg)
                        return (new);
                }
                break;
-       case 'm':
-               if (!strcmp(arg, "mfs")) {
-                       new->flags = F_MTTYPE;
-                       new->mt_data = MOUNT_MFS;
-                       return (new);
-               }
-               break;
-       case 'n':
-               if (!strcmp(arg, "nfs")) {
-                       new->flags = F_MTTYPE;
-                       new->mt_data = MOUNT_NFS;
-                       return (new);
-               }
-               break;
-       case 'p':
-               if (!strcmp(arg, "msdos")) {
-                       new->flags = F_MTTYPE;
-                       new->mt_data = MOUNT_MSDOS;
-                       return (new);
-               }
-               break;
        case 'r':
                if (!strcmp(arg, "rdonly")) {
                        new->flags = F_MTFLAG;
@@ -410,13 +400,6 @@ c_fstype(arg)
                        return (new);
                }
                break;
-       case 'u':
-               if (!strcmp(arg, "ufs")) {
-                       new->flags = F_MTTYPE;
-                       new->mt_data = MOUNT_UFS;
-                       return (new);
-               }
-               break;
        }
        errx(1, "%s: unknown file type", arg);
        /* NOTREACHED */