summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2011-02-02 21:19:14 +0100
committerKarel Zak2011-02-02 21:19:14 +0100
commitcfb9db309558ca45c670947e1bf391152c662f1e (patch)
tree2e82ec6a65f1a446f2e63d5fbb7862f0d43f90aa
parentlibmount: copy mount attrs from utab to context (diff)
downloadkernel-qcow2-util-linux-cfb9db309558ca45c670947e1bf391152c662f1e.tar.gz
kernel-qcow2-util-linux-cfb9db309558ca45c670947e1bf391152c662f1e.tar.xz
kernel-qcow2-util-linux-cfb9db309558ca45c670947e1bf391152c662f1e.zip
libmount: cleanup high-level mount API
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--shlibs/mount/docs/libmount-sections.txt4
-rw-r--r--shlibs/mount/samples/mount.c2
-rw-r--r--shlibs/mount/src/context.c4
-rw-r--r--shlibs/mount/src/context_mount.c58
-rw-r--r--shlibs/mount/src/libmount.h.in2
-rw-r--r--shlibs/mount/src/libmount.sym2
6 files changed, 38 insertions, 34 deletions
diff --git a/shlibs/mount/docs/libmount-sections.txt b/shlibs/mount/docs/libmount-sections.txt
index 8a3a7d22b..d351aab53 100644
--- a/shlibs/mount/docs/libmount-sections.txt
+++ b/shlibs/mount/docs/libmount-sections.txt
@@ -211,8 +211,12 @@ mnt_context_set_source
mnt_context_set_target
mnt_context_set_user_mflags
mnt_context_strerror
+mnt_context_mount
mnt_free_context
mnt_new_context
mnt_reset_context
+mnt_context_prepare_mount
+mnt_context_do_mount
+mnt_context_finalize_mount
</SECTION>
diff --git a/shlibs/mount/samples/mount.c b/shlibs/mount/samples/mount.c
index 5e87d88db..8095ffccb 100644
--- a/shlibs/mount/samples/mount.c
+++ b/shlibs/mount/samples/mount.c
@@ -409,7 +409,7 @@ int main(int argc, char **argv)
if (lock)
atexit(lock_atexit_cleanup);
- rc = mnt_mount_context(cxt);
+ rc = mnt_context_mount(cxt);
if (rc) {
/* TODO: call mnt_context_strerror() */
rc = EX_FAIL;
diff --git a/shlibs/mount/src/context.c b/shlibs/mount/src/context.c
index 676552bf1..de852a3af 100644
--- a/shlibs/mount/src/context.c
+++ b/shlibs/mount/src/context.c
@@ -1486,7 +1486,7 @@ int mnt_context_get_status(struct libmnt_context *cxt)
* @status: mount(2) return code
*
* This function should be used if [u]mount(2) syscall was NOT called by
- * libmount (mnt_mount_context() or mnt_context_do_mount()) only.
+ * libmount (mnt_context_mount() or mnt_context_do_mount()) only.
*
* Returns: 0 or negative number in case of error.
*/
@@ -1586,7 +1586,7 @@ int test_mount(struct libmnt_test *ts, int argc, char *argv[])
if (lock)
atexit(lock_fallback);
- rc = mnt_mount_context(cxt);
+ rc = mnt_context_mount(cxt);
if (rc)
printf("failed to mount %s\n", strerror(errno));
else
diff --git a/shlibs/mount/src/context_mount.c b/shlibs/mount/src/context_mount.c
index 8c764078d..7f6847277 100644
--- a/shlibs/mount/src/context_mount.c
+++ b/shlibs/mount/src/context_mount.c
@@ -496,7 +496,6 @@ int mnt_context_prepare_mount(struct libmnt_context *cxt)
return -EINVAL;
if (!mnt_fs_get_source(cxt->fs) && !mnt_fs_get_target(cxt->fs))
return -EINVAL;
-
if (cxt->flags & MNT_FL_PREPARED)
return 0;
@@ -546,6 +545,7 @@ int mnt_context_do_mount(struct libmnt_context *cxt)
assert(cxt->syscall_status == 1);
assert((cxt->flags & MNT_FL_MOUNTFLAGS_MERGED));
assert((cxt->flags & MNT_FL_PREPARED));
+ assert((cxt->action == MNT_ACT_MOUNT));
DBG(CXT, mnt_debug_h(cxt, "mount: do mount"));
@@ -560,12 +560,36 @@ int mnt_context_do_mount(struct libmnt_context *cxt)
}
/**
- * mnt_mount_context:
+ * mnt_context_finalize_mount:
+ * @cxt: context
+ *
+ * Mtab update, etc. Unnecessary for mnt_context_mount(), but should be called
+ * after mnt_context_do_mount(). See also mnt_context_set_syscall_status().
+ *
+ * Returns: negative number on error, 0 on success.
+ */
+int mnt_context_finalize_mount(struct libmnt_context *cxt)
+{
+ int rc;
+
+ assert(cxt);
+ assert(cxt->fs);
+ assert((cxt->flags & MNT_FL_MOUNTFLAGS_MERGED));
+ assert((cxt->flags & MNT_FL_PREPARED));
+
+ rc = mnt_context_prepare_update(cxt);
+ if (!rc)
+ rc = mnt_context_update_tabs(cxt);;
+ return rc;
+}
+
+/**
+ * mnt_context_mount:
* @cxt: mount context
*
- * Mount filesystem by mount(2) or fork()+exec(/sbin/mount.type).
+ * High-level, mounts filesystem by mount(2) or fork()+exec(/sbin/mount.type).
*
- * This is top-level function for FS mounting, similar to:
+ * This is similar to:
*
* mnt_context_prepare_mount(cxt);
* mnt_context_do_mount(cxt);
@@ -577,7 +601,7 @@ int mnt_context_do_mount(struct libmnt_context *cxt)
* does not mean that mount(2) syscall or mount.type helper wasn't
* sucessfully called. Check mnt_context_get_status() after error!
*/
-int mnt_mount_context(struct libmnt_context *cxt)
+int mnt_context_mount(struct libmnt_context *cxt)
{
int rc;
@@ -601,27 +625,3 @@ int mnt_mount_context(struct libmnt_context *cxt)
return rc;
}
-/**
- * mnt_context_finalize_mount:
- * @cxt: context
- *
- * Mtab update, etc. Unnecessary for mnt_context_mount(), but should be called
- * after mnt_context_do_mount(). See also mnt_context_set_syscall_status().
- *
- * Returns: negative number on error, 0 on success.
- */
-int mnt_context_finalize_mount(struct libmnt_context *cxt)
-{
- int rc;
-
- assert(cxt);
- assert(cxt->fs);
- assert((cxt->flags & MNT_FL_MOUNTFLAGS_MERGED));
- assert((cxt->flags & MNT_FL_PREPARED));
-
- rc = mnt_context_prepare_update(cxt);
- if (!rc)
- rc = mnt_context_update_tabs(cxt);;
- return rc;
-}
-
diff --git a/shlibs/mount/src/libmount.h.in b/shlibs/mount/src/libmount.h.in
index 153b28aec..9870ba792 100644
--- a/shlibs/mount/src/libmount.h.in
+++ b/shlibs/mount/src/libmount.h.in
@@ -416,7 +416,7 @@ extern int mnt_context_get_status(struct libmnt_context *cxt);
extern int mnt_context_strerror(struct libmnt_context *cxt, char *buf,
size_t bufsiz);
-extern int mnt_mount_context(struct libmnt_context *cxt);
+extern int mnt_context_mount(struct libmnt_context *cxt);
extern int mnt_context_prepare_mount(struct libmnt_context *cxt);
extern int mnt_context_do_mount(struct libmnt_context *cxt);
diff --git a/shlibs/mount/src/libmount.sym b/shlibs/mount/src/libmount.sym
index 160174ea0..47488b512 100644
--- a/shlibs/mount/src/libmount.sym
+++ b/shlibs/mount/src/libmount.sym
@@ -133,7 +133,7 @@ global:
mnt_mangle;
mnt_match_fstype;
mnt_match_options;
- mnt_mount_context;
+ mnt_context_mount;
mnt_new_cache;
mnt_new_context;
mnt_new_fs;