From 10389b1e4535dda7d27e5ab39d3d4f9d7868a5c9 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 28 May 2012 12:26:41 +0200 Subject: [PATCH] mount: (new) add loopdev specific error message Signed-off-by: Karel Zak --- sys-utils/mount.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sys-utils/mount.c b/sys-utils/mount.c index af9178487..9be8cb8a9 100644 --- a/sys-utils/mount.c +++ b/sys-utils/mount.c @@ -336,6 +336,9 @@ try_readonly: return MOUNT_EX_SUCCESS; /* mount(2) success */ } + mnt_context_get_mflags(cxt, &mflags); /* mount(2) flags */ + mnt_context_get_user_mflags(cxt, &uflags); /* userspace flags */ + if (!mnt_context_syscall_called(cxt)) { /* * libmount errors (extra library checks) @@ -364,7 +367,15 @@ try_readonly: else warnx(_("mount source not defined")); return MOUNT_EX_USAGE; - + case -MNT_ERR_LOOPDEV: + if (errno == ENOENT + && (uflags & MNT_MS_ENCRYPTION) + && src && stat(src, &st) == 0) + warnx(_("%s: failed to setup loop device " + "(probably unknown encryption type)"), src); + else + warn(_("%s: failed to setup loop device"), src); + return MOUNT_EX_FAIL; default: return handle_generic_errors(rc, _("%s: mount failed"), tgt ? tgt : src); @@ -388,8 +399,6 @@ try_readonly: */ syserr = mnt_context_get_syscall_errno(cxt); - mnt_context_get_mflags(cxt, &mflags); /* mount(2) flags */ - mnt_context_get_user_mflags(cxt, &uflags); /* userspace flags */ switch(syserr) { case EPERM: