summaryrefslogtreecommitdiffstats
path: root/libmount/src
diff options
context:
space:
mode:
Diffstat (limited to 'libmount/src')
-rw-r--r--libmount/src/context_mount.c8
-rw-r--r--libmount/src/context_umount.c8
-rw-r--r--libmount/src/libmount.h.in6
3 files changed, 22 insertions, 0 deletions
diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c
index 6207bd814..9245d73dd 100644
--- a/libmount/src/context_mount.c
+++ b/libmount/src/context_mount.c
@@ -1452,6 +1452,10 @@ int mnt_context_get_mount_excode(
if (buf)
snprintf(buf, bufsz, _("locking failed"));
return MNT_EX_FILEIO;
+ case -MNT_ERR_NAMESPACE:
+ if (buf)
+ snprintf(buf, bufsz, _("failed to switch namespace"));
+ return MNT_EX_SYSERR;
default:
return mnt_context_get_generic_excode(rc, buf, bufsz, _("mount failed: %m"));
}
@@ -1465,6 +1469,10 @@ int mnt_context_get_mount_excode(
if (buf)
snprintf(buf, bufsz, _("filesystem was mounted, but failed to update userspace mount table"));
return MNT_EX_FILEIO;
+ } else if (rc == -MNT_ERR_NAMESPACE) {
+ if (buf)
+ snprintf(buf, bufsz, _("filesystem was mounted, but failed to switch namespace back"));
+ return MNT_EX_SYSERR;
} else if (rc < 0)
return mnt_context_get_generic_excode(rc, buf, bufsz,
diff --git a/libmount/src/context_umount.c b/libmount/src/context_umount.c
index 81a650352..3e320bec9 100644
--- a/libmount/src/context_umount.c
+++ b/libmount/src/context_umount.c
@@ -1076,6 +1076,10 @@ int mnt_context_get_umount_excode(
if (buf)
snprintf(buf, bufsz, _("locking failed"));
return MNT_EX_FILEIO;
+ } else if (rc == -MNT_ERR_NAMESPACE) {
+ if (buf)
+ snprintf(buf, bufsz, _("failed to switch namespace"));
+ return MNT_EX_SYSERR;
}
return mnt_context_get_generic_excode(rc, buf, bufsz,
_("umount failed: %m"));
@@ -1089,6 +1093,10 @@ int mnt_context_get_umount_excode(
if (buf)
snprintf(buf, bufsz, _("filesystem was unmounted, but failed to update userspace mount table"));
return MNT_EX_FILEIO;
+ } else if (rc == -MNT_ERR_NAMESPACE) {
+ if (buf)
+ snprintf(buf, bufsz, _("filesystem was unmounted, but failed to switch namespace back"));
+ return MNT_EX_SYSERR;
} else if (rc < 0)
return mnt_context_get_generic_excode(rc, buf, bufsz,
diff --git a/libmount/src/libmount.h.in b/libmount/src/libmount.h.in
index 885729dfb..3a9440371 100644
--- a/libmount/src/libmount.h.in
+++ b/libmount/src/libmount.h.in
@@ -205,6 +205,12 @@ enum {
* failed to lock mtab/utab or so.
*/
#define MNT_ERR_LOCK 5008
+/**
+ * MNT_ERR_NAMESPACE:
+ *
+ * failed to switch namespace
+ */
+#define MNT_ERR_NAMESPACE 5009
/*