2006-12-19 00:18:10 +01:00
|
|
|
mount/mount.8 | 7 +++++++
|
|
|
|
mount/mount.c | 15 +++++++++++++--
|
|
|
|
mount/mount_constants.h | 3 +++
|
|
|
|
3 files changed, 23 insertions(+), 2 deletions(-)
|
|
|
|
|
2007-04-12 18:31:42 +02:00
|
|
|
Index: util-linux-ng-2.12r+git20070330/mount/mount.8
|
2006-12-19 00:18:10 +01:00
|
|
|
===================================================================
|
2007-04-12 18:31:42 +02:00
|
|
|
--- util-linux-ng-2.12r+git20070330.orig/mount/mount.8
|
|
|
|
+++ util-linux-ng-2.12r+git20070330/mount/mount.8
|
2006-12-19 00:18:10 +01:00
|
|
|
@@ -572,6 +572,10 @@ This option implies the options
|
|
|
|
(unless overridden by subsequent options, as in the option line
|
|
|
|
.BR group,dev,suid ).
|
|
|
|
.TP
|
|
|
|
+.B hotplug
|
|
|
|
+Do not report errors for this device if it doesn't exist.
|
|
|
|
+.BR fcntl (2).
|
|
|
|
+.TP
|
|
|
|
.B mand
|
|
|
|
Allow mandatory locks on this filesystem. See
|
|
|
|
.BR fcntl (2).
|
2007-04-12 18:31:42 +02:00
|
|
|
@@ -602,6 +606,9 @@ Do not allow direct execution of any bin
|
2006-12-19 00:18:10 +01:00
|
|
|
(Until recently it was possible to run binaries anyway using a command like
|
|
|
|
/lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)
|
|
|
|
.TP
|
|
|
|
+.B nohotplug
|
|
|
|
+Report an error if the device does not exist.
|
|
|
|
+.TP
|
|
|
|
.B nomand
|
|
|
|
Do not allow mandatory locks on this filesystem.
|
|
|
|
.TP
|
2007-04-12 18:31:42 +02:00
|
|
|
Index: util-linux-ng-2.12r+git20070330/mount/mount.c
|
2006-12-19 00:18:10 +01:00
|
|
|
===================================================================
|
2007-04-12 18:31:42 +02:00
|
|
|
--- util-linux-ng-2.12r+git20070330.orig/mount/mount.c
|
|
|
|
+++ util-linux-ng-2.12r+git20070330/mount/mount.c
|
|
|
|
@@ -174,9 +174,14 @@ static const struct opt_map opt_map[] =
|
2006-12-19 00:18:10 +01:00
|
|
|
{ "diratime", 0, 1, MS_NODIRATIME }, /* Update dir access times */
|
|
|
|
{ "nodiratime", 0, 0, MS_NODIRATIME },/* Do not update dir access times */
|
|
|
|
#endif
|
|
|
|
+#ifdef MS_HOTPLUG
|
|
|
|
+ { "hotplug", 0, 0, MS_HOTPLUG }, /* Don't fail if ENOENT on dev */
|
|
|
|
+#endif
|
|
|
|
{ NULL, 0, 0, 0 }
|
|
|
|
};
|
|
|
|
|
|
|
|
+static int option_hotplug; /* can not invent our own MS_FLAGS */
|
|
|
|
+
|
2007-04-12 18:31:42 +02:00
|
|
|
static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption,
|
2006-12-19 00:18:10 +01:00
|
|
|
*opt_speed, *opt_comment;
|
|
|
|
|
2007-04-12 18:31:42 +02:00
|
|
|
@@ -269,6 +274,10 @@ parse_opt(const char *opt, int *mask, ch
|
2006-12-19 00:18:10 +01:00
|
|
|
|
|
|
|
for (om = opt_map; om->opt != NULL; om++)
|
|
|
|
if (streq (opt, om->opt)) {
|
|
|
|
+ if (om->mask & MS_HOTPLUG) {
|
|
|
|
+ option_hotplug = 1;
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
if (om->inv)
|
|
|
|
*mask &= ~om->mask;
|
|
|
|
else
|
2007-04-12 18:31:42 +02:00
|
|
|
@@ -985,9 +994,11 @@ retry_nfs:
|
2006-12-19 00:18:10 +01:00
|
|
|
else if (stat (node, &statbuf))
|
|
|
|
error (_("mount: mount point %s is a symbolic link to nowhere"),
|
|
|
|
node);
|
|
|
|
- else if (stat (spec, &statbuf))
|
|
|
|
+ else if (stat (spec, &statbuf)) {
|
|
|
|
+ if (option_hotplug)
|
|
|
|
+ goto out;
|
|
|
|
error (_("mount: special device %s does not exist"), spec);
|
|
|
|
- else {
|
|
|
|
+ } else {
|
|
|
|
errno = mnt_err;
|
|
|
|
perror("mount");
|
|
|
|
}
|
2007-04-12 18:31:42 +02:00
|
|
|
Index: util-linux-ng-2.12r+git20070330/mount/mount_constants.h
|
2006-12-19 00:18:10 +01:00
|
|
|
===================================================================
|
2007-04-12 18:31:42 +02:00
|
|
|
--- util-linux-ng-2.12r+git20070330.orig/mount/mount_constants.h
|
|
|
|
+++ util-linux-ng-2.12r+git20070330/mount/mount_constants.h
|
2006-12-19 00:18:10 +01:00
|
|
|
@@ -57,6 +57,9 @@ if we have a stack or plain mount - moun
|
|
|
|
#ifndef MS_VERBOSE
|
|
|
|
#define MS_VERBOSE 0x8000 /* 32768 */
|
|
|
|
#endif
|
|
|
|
+
|
|
|
|
+#define MS_HOTPLUG (1<<18) /* Don't fail if ENOENT on the dev, mount internal */
|
|
|
|
+
|
|
|
|
/*
|
|
|
|
* Magic mount flag number. Had to be or-ed to the flag values.
|
|
|
|
*/
|