diff options
author | Karel Zak | 2012-05-28 12:26:41 +0200 |
---|---|---|
committer | Karel Zak | 2012-05-28 12:26:41 +0200 |
commit | 10389b1e4535dda7d27e5ab39d3d4f9d7868a5c9 (patch) | |
tree | a4d7a84334374a496324e25ef6db52a7fd169af1 /sys-utils/mount.c | |
parent | libmount: add MNT_ERR_LOOPDEV (diff) | |
download | kernel-qcow2-util-linux-10389b1e4535dda7d27e5ab39d3d4f9d7868a5c9.tar.gz kernel-qcow2-util-linux-10389b1e4535dda7d27e5ab39d3d4f9d7868a5c9.tar.xz kernel-qcow2-util-linux-10389b1e4535dda7d27e5ab39d3d4f9d7868a5c9.zip |
mount: (new) add loopdev specific error message
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/mount.c')
-rw-r--r-- | sys-utils/mount.c | 15 |
1 files 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: |