81 lines
2.2 KiB
Diff
81 lines
2.2 KiB
Diff
diff -up util-linux-2.21.2/sys-utils/mount.c.orig util-linux-2.21.2/sys-utils/mount.c
|
|
--- util-linux-2.21.2/sys-utils/mount.c.orig 2013-02-03 17:33:05.248888432 +0100
|
|
+++ util-linux-2.21.2/sys-utils/mount.c 2013-02-03 17:34:31.856571865 +0100
|
|
@@ -238,6 +238,29 @@ static int mount_all(struct libmnt_conte
|
|
return rc;
|
|
}
|
|
|
|
+static void success_message(struct libmnt_context *cxt)
|
|
+{
|
|
+ unsigned long mflags = 0;
|
|
+ const char *tgt, *src;
|
|
+
|
|
+ if (mnt_context_helper_executed(cxt)
|
|
+ || mnt_context_get_status(cxt) != 1)
|
|
+ return;
|
|
+
|
|
+ mnt_context_get_mflags(cxt, &mflags);
|
|
+ tgt = mnt_context_get_target(cxt);
|
|
+ src = mnt_context_get_source(cxt);
|
|
+
|
|
+ if (mflags & MS_MOVE)
|
|
+ warnx(_("%s moved to %s"), src, tgt);
|
|
+ else if (mflags & MS_BIND)
|
|
+ warnx(_("%s binded on %s"), src, tgt);
|
|
+ else if (mflags & MS_PROPAGATION)
|
|
+ warnx(_("%s propagation flags changed"), tgt);
|
|
+ else
|
|
+ warnx(_("%s mounted on %s"), src, tgt);
|
|
+}
|
|
+
|
|
/*
|
|
* Handles generic errors like ENOMEM, ...
|
|
*
|
|
@@ -913,6 +936,8 @@ int main(int argc, char **argv)
|
|
rc = mnt_context_mount(cxt);
|
|
rc = mk_exit_code(cxt, rc);
|
|
|
|
+ if (rc == MOUNT_EX_SUCCESS && mnt_context_is_verbose(cxt))
|
|
+ success_message(cxt);
|
|
done:
|
|
free(srcbuf);
|
|
mnt_free_context(cxt);
|
|
diff -up util-linux-2.21.2/sys-utils/umount.c.orig util-linux-2.21.2/sys-utils/umount.c
|
|
--- util-linux-2.21.2/sys-utils/umount.c.orig 2012-05-25 11:44:59.043195664 +0200
|
|
+++ util-linux-2.21.2/sys-utils/umount.c 2013-02-03 17:33:05.266888574 +0100
|
|
@@ -119,6 +119,25 @@ static void __attribute__((__noreturn__)
|
|
errx(MOUNT_EX_USAGE, _("only root can do that"));
|
|
}
|
|
|
|
+static void success_message(struct libmnt_context *cxt)
|
|
+{
|
|
+ const char *tgt, *src;
|
|
+
|
|
+ if (mnt_context_helper_executed(cxt)
|
|
+ || mnt_context_get_status(cxt) != 1)
|
|
+ return;
|
|
+
|
|
+ tgt = mnt_context_get_target(cxt);
|
|
+ if (!tgt)
|
|
+ return;
|
|
+
|
|
+ src = mnt_context_get_source(cxt);
|
|
+ if (src)
|
|
+ warnx(_("%s (%s) unmounted"), tgt, src);
|
|
+ else
|
|
+ warnx(_("%s unmounted"), tgt);
|
|
+}
|
|
+
|
|
/*
|
|
* Handles generic errors like ENOMEM, ...
|
|
*
|
|
@@ -273,6 +292,9 @@ static int umount_one(struct libmnt_cont
|
|
rc = mnt_context_umount(cxt);
|
|
rc = mk_exit_code(cxt, rc);
|
|
|
|
+ if (rc == MOUNT_EX_SUCCESS && mnt_context_is_verbose(cxt))
|
|
+ success_message(cxt);
|
|
+
|
|
mnt_reset_context(cxt);
|
|
return rc;
|
|
}
|