mount(8): Add an 'ignore' option.
authorSascha Wildner <saw@online.de>
Wed, 10 Jun 2009 17:09:29 +0000 (19:09 +0200)
committerSascha Wildner <saw@online.de>
Wed, 10 Jun 2009 17:10:43 +0000 (19:10 +0200)
The actual infrustructure was already in place (MNT_IGNORE) but it
couldn't be set, i.e. df(1) already had code to ignore MNT_IGNORE
mounts and an option to also show ignored mounts (-a), but the user
couldn't set the ignored option.

This is useful for procfs, amd, nullfs, filebacked fs, etc.
To test it with procfs you also need to recompile mount_std(8).

Some systems call the option 'hidden', but it doesn't seem any better
(both aren't very good), but at least 'ignore' corresponds to
MNT_IGNORE.

Submitted-by: Andreas Hauser <andy@splashground.de>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue200>

bin/df/df.1
sbin/mount/mntopts.h
sbin/mount/mount.8
sbin/mount/mount.c
sbin/mount/mount_ufs.c

index 47f9847..280d7d8 100644 (file)
@@ -33,7 +33,7 @@
 .\" $FreeBSD: src/bin/df/df.1,v 1.18.2.9 2003/05/07 23:56:14 trhodes Exp $
 .\" $DragonFly: src/bin/df/df.1,v 1.3 2006/02/17 19:33:30 swildner Exp $
 .\"
-.Dd May 8, 1995
+.Dd June 10, 2009
 .Dt DF 1
 .Os
 .Sh NAME
@@ -67,8 +67,9 @@ option below).
 The following options are available:
 .Bl -tag -width Ds
 .It Fl a
-Show all mount points, including those that were mounted with the MNT_IGNORE
-flag.
+Show all mount points, including those that were mounted with the
+.Cm ignore
+option.
 .It Fl b
 Use 512-byte blocks rather than the default.  Note that
 this overrides the
index 6245d37..d3419fa 100644 (file)
@@ -57,6 +57,7 @@ struct mntopt {
 #define MOPT_NOCLUSTERR                { "clusterr",   1, MNT_NOCLUSTERR, 0 }
 #define MOPT_NOCLUSTERW                { "clusterw",   1, MNT_NOCLUSTERW, 0 }
 #define MOPT_SUIDDIR           { "suiddir",    0, MNT_SUIDDIR, 0 }
+#define MOPT_IGNORE            { "ignore",     0, MNT_IGNORE, 0 }
 
 /* Control flags. */
 #define MOPT_FORCE             { "force",      0, MNT_FORCE, 0 }
@@ -89,7 +90,8 @@ struct mntopt {
        MOPT_RDONLY,                                                    \
        MOPT_UNION,                                                     \
        MOPT_NOCLUSTERR,                                                \
-       MOPT_NOCLUSTERW
+       MOPT_NOCLUSTERW,                                                \
+       MOPT_IGNORE
 
 void getmntopts(const char *, const struct mntopt *, int *, int *);
 void rmslashes(char *, char *);
index e588792..f5f4a2c 100644 (file)
@@ -33,7 +33,7 @@
 .\" $FreeBSD: src/sbin/mount/mount.8,v 1.31.2.12 2003/02/23 21:17:42 trhodes Exp $
 .\" $DragonFly: src/sbin/mount/mount.8,v 1.8 2008/04/23 21:59:22 thomas Exp $
 .\"
-.Dd February 3, 2009
+.Dd June 10, 2009
 .Dt MOUNT 8
 .Os
 .Sh NAME
@@ -216,6 +216,9 @@ Lookups will be done in the mounted filesystem first.
 If those operations fail due to a non-existent file the underlying
 directory is then accessed.
 All creates are done in the mounted filesystem.
+.It Cm ignore
+Will be ignored by
+.Xr df 1 .
 .El
 .Pp
 Any additional options specific to a filesystem type that is not
@@ -374,6 +377,7 @@ it has not been configured statically, using
 In this case, the above error message can also mean that you did not
 have permission to load the module.
 .Sh SEE ALSO
+.Xr df 1 ,
 .Xr lsvfs 1 ,
 .Xr mount 2 ,
 .Xr vfsload 3 ,
index 71ef05b..1941598 100644 (file)
@@ -100,6 +100,7 @@ static struct opt {
        { MNT_NOCLUSTERW,       "noclusterw" },
        { MNT_SUIDDIR,          "suiddir" },
        { MNT_SOFTDEP,          "soft-updates" },
+       { MNT_IGNORE,           "ignore" },
        { 0, NULL }
 };
 
@@ -739,6 +740,7 @@ flags2opts(int flags)
        if (flags & MNT_NOCLUSTERW)     res = catopt(res, "noclusterw");
        if (flags & MNT_NOSYMFOLLOW)    res = catopt(res, "nosymfollow");
        if (flags & MNT_SUIDDIR)        res = catopt(res, "suiddir");
+       if (flags & MNT_IGNORE)         res = catopt(res, "ignore");
 
        return res;
 }
index ca90740..1af7efa 100644 (file)
@@ -58,6 +58,7 @@ static struct mntopt mopts[] = {
        MOPT_FORCE,
        MOPT_SYNC,
        MOPT_UPDATE,
+       MOPT_IGNORE,
        MOPT_NULL
 };