summaryrefslogtreecommitdiffstats
path: root/sys-utils/umount.c
diff options
context:
space:
mode:
authorKarel Zak2012-10-09 11:56:35 +0200
committerKarel Zak2012-10-09 11:56:35 +0200
commit84600ddc6d34d88c9aa6e0a6145457f14d71acf7 (patch)
treeb277a4e356490d75c22f304b9e982c7a8a4ae48f /sys-utils/umount.c
parentlibmount: fix umount file.img (diff)
downloadkernel-qcow2-util-linux-84600ddc6d34d88c9aa6e0a6145457f14d71acf7.tar.gz
kernel-qcow2-util-linux-84600ddc6d34d88c9aa6e0a6145457f14d71acf7.tar.xz
kernel-qcow2-util-linux-84600ddc6d34d88c9aa6e0a6145457f14d71acf7.zip
mount: add verbose messages
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=864227 Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/umount.c')
-rw-r--r--sys-utils/umount.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sys-utils/umount.c b/sys-utils/umount.c
index 97b2f443b..38a2fc8f2 100644
--- a/sys-utils/umount.c
+++ b/sys-utils/umount.c
@@ -120,6 +120,25 @@ static void __attribute__((__noreturn__)) exit_non_root(const char *option)
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, ...
*
@@ -274,6 +293,9 @@ static int umount_one(struct libmnt_context *cxt, const char *spec)
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;
}