summaryrefslogtreecommitdiffstats
path: root/shlibs/mount/src
diff options
context:
space:
mode:
authorKarel Zak2010-03-05 10:52:59 +0100
committerKarel Zak2010-06-03 15:20:11 +0200
commite7462a881930a41ec84bf0661ff19f8fd1dfe7be (patch)
treeeebf6e56ea24483871efaf65136673b259df73d9 /shlibs/mount/src
parentlibmount: read devno, ID and parent ID from /proc/self/mountinfo (diff)
downloadkernel-qcow2-util-linux-e7462a881930a41ec84bf0661ff19f8fd1dfe7be.tar.gz
kernel-qcow2-util-linux-e7462a881930a41ec84bf0661ff19f8fd1dfe7be.tar.xz
kernel-qcow2-util-linux-e7462a881930a41ec84bf0661ff19f8fd1dfe7be.zip
libblkid: add mnt_iter_get_direction()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'shlibs/mount/src')
-rw-r--r--shlibs/mount/src/iter.c17
-rw-r--r--shlibs/mount/src/mount.h.in1
-rw-r--r--shlibs/mount/src/mount.sym1
3 files changed, 18 insertions, 1 deletions
diff --git a/shlibs/mount/src/iter.c b/shlibs/mount/src/iter.c
index d64f2d40d..4baa7ffb4 100644
--- a/shlibs/mount/src/iter.c
+++ b/shlibs/mount/src/iter.c
@@ -39,7 +39,7 @@ void mnt_free_iter(mnt_iter *itr)
/**
* mnt_reset_iter:
* @itr: iterator pointer
- * @direction: MNT_INTER_{FOR,BACK}WARD iterator direction
+ * @direction: MNT_INTER_{FOR,BACK}WARD or -1 to keep the derection unchanged
*
* Resets iterator.
*/
@@ -47,8 +47,23 @@ void mnt_reset_iter(mnt_iter *itr, int direction)
{
assert(itr);
+ if (direction == -1)
+ direction = itr->direction;
+
if (itr) {
memset(itr, 0, sizeof(struct _mnt_iter));
itr->direction = direction;
}
}
+
+/**
+ * mnt_iter_get_direction:
+ * @itr: iterator pointer
+ *
+ * Returns: MNT_INTER_{FOR,BACK}WARD or -1 in case of error.
+ */
+int mnt_iter_get_direction(mnt_iter *itr)
+{
+ assert(itr);
+ return itr ? itr->direction : -1;
+}
diff --git a/shlibs/mount/src/mount.h.in b/shlibs/mount/src/mount.h.in
index 8e71213aa..585b9fca3 100644
--- a/shlibs/mount/src/mount.h.in
+++ b/shlibs/mount/src/mount.h.in
@@ -147,6 +147,7 @@ enum {
extern mnt_iter *mnt_new_iter(int direction);
extern void mnt_free_iter(mnt_iter *mi);
extern void mnt_reset_iter(mnt_iter *mi, int direction);
+extern int mnt_iter_get_direction(mnt_iter *itr);
/* optmap.c */
enum {
diff --git a/shlibs/mount/src/mount.sym b/shlibs/mount/src/mount.sym
index 3bc32ecdd..6740bbcd3 100644
--- a/shlibs/mount/src/mount.sym
+++ b/shlibs/mount/src/mount.sym
@@ -46,6 +46,7 @@ global:
mnt_fstype_is_pseudofs;
mnt_get_builtin_optmap;
mnt_get_library_version;
+ mnt_iter_get_direction;
mnt_lock_file;
mnt_lock_get_linkfile;
mnt_lock_get_lockfile;