util-linux/mount-add-verbose-messages.patch
Karel Zak 8027d4fd80 2.21.2-3: #885314 #864227
Signed-off-by: Karel Zak <kzak@redhat.com>
2013-02-03 17:38:16 +01:00

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;
}