summaryrefslogtreecommitdiffstats
path: root/shlibs/mount/src/fs.c
diff options
context:
space:
mode:
authorKarel Zak2010-03-02 22:34:56 +0100
committerKarel Zak2010-06-03 15:20:11 +0200
commitefe73c3ef120997c14ad95bf1857a044e99872b6 (patch)
tree518fe139a38ec374aa0a9aa8fb533dc8044dd6ab /shlibs/mount/src/fs.c
parentfindmnt: add new command (diff)
downloadkernel-qcow2-util-linux-efe73c3ef120997c14ad95bf1857a044e99872b6.tar.gz
kernel-qcow2-util-linux-efe73c3ef120997c14ad95bf1857a044e99872b6.tar.xz
kernel-qcow2-util-linux-efe73c3ef120997c14ad95bf1857a044e99872b6.zip
libmount: read devno, ID and parent ID from /proc/self/mountinfo
The patch also removes obsolete test program from tab_parse.c. Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'shlibs/mount/src/fs.c')
-rw-r--r--shlibs/mount/src/fs.c54
1 files changed, 47 insertions, 7 deletions
diff --git a/shlibs/mount/src/fs.c b/shlibs/mount/src/fs.c
index 01c2d0277..fef61b0d6 100644
--- a/shlibs/mount/src/fs.c
+++ b/shlibs/mount/src/fs.c
@@ -328,7 +328,7 @@ const char *mnt_fs_get_fs_optstr(mnt_fs *fs)
/**
* mnt_fs_get_vfs_optstr:
- * @fs: fstab/mtab/mountinfo entry pointer
+ * @fs: fstab/mtab entry pointer
*
* This function works for "mountinfo" files only.
*
@@ -355,7 +355,7 @@ int mnt_fs_get_freq(mnt_fs *fs)
/**
* mnt_fs_set_freq:
- * @fs: fstab/mtab/mountinfo entry pointer
+ * @fs: fstab/mtab entry pointer
* @freq: dump frequency in days
*
* Returns 0 on success or -1 in case of error.
@@ -363,7 +363,6 @@ int mnt_fs_get_freq(mnt_fs *fs)
int mnt_fs_set_freq(mnt_fs *fs, int freq)
{
assert(fs);
-
if (!fs)
return -1;
fs->freq = freq;
@@ -372,7 +371,7 @@ int mnt_fs_set_freq(mnt_fs *fs, int freq)
/**
* mnt_fs_get_passno:
- * @fs: fstab/mtab/mountinfo entry pointer
+ * @fs: fstab/mtab entry pointer
*
* Returns "pass number on parallel fsck".
*/
@@ -384,7 +383,7 @@ int mnt_fs_get_passno(mnt_fs *fs)
/**
* mnt_fs_set_passno:
- * @fs: fstab/mtab/mountinfo entry pointer
+ * @fs: fstab/mtab entry pointer
* @passno: pass number
*
* Returns 0 on success or -1 in case of error.
@@ -392,7 +391,6 @@ int mnt_fs_get_passno(mnt_fs *fs)
int mnt_fs_set_passno(mnt_fs *fs, int passno)
{
assert(fs);
-
if (!fs)
return -1;
fs->passno = passno;
@@ -400,6 +398,44 @@ int mnt_fs_set_passno(mnt_fs *fs, int passno)
}
/**
+ * mnt_fs_get_id:
+ * @fs: /proc/self/mountinfo entry
+ *
+ * Returns: mount ID (unique identifier of the mount) or -1 if ID undefined
+ * (for example if @fs is not mountinfo entry).
+ */
+int mnt_fs_get_id(mnt_fs *fs)
+{
+ assert(fs);
+ return fs ? fs->id : -1;
+}
+
+/**
+ * mnt_fs_get_parent_id:
+ * @fs: /proc/self/mountinfo entry
+ *
+ * Returns: parent mount ID or -1 if ID undefined (for example if @fs is not
+ * mountinfo entry).
+ */
+int mnt_fs_get_parent_id(mnt_fs *fs)
+{
+ assert(fs);
+ return fs ? fs->parent : -1;
+}
+
+/**
+ * mnt_fs_get_devno:
+ * @fs: /proc/self/mountinfo
+ *
+ * Returns: value of st_dev for files on filesystem or 0 in case of error.
+ */
+dev_t mnt_fs_get_devno(mnt_fs *fs)
+{
+ assert(fs);
+ return fs ? fs->devno : 0;
+}
+
+/**
* mnt_fs_get_option:
* @fs: fstab/mtab/mountinfo entry pointer
* @name: option name
@@ -415,7 +451,6 @@ int mnt_fs_get_option(mnt_fs *fs, const char *name,
return optstr ? mnt_optstr_get_option(optstr, name, value, valsz) : 1;
}
-
/**
* mnt_fs_match_target:
* @fs: filesystem
@@ -689,6 +724,11 @@ int mnt_fs_print_debug(mnt_fs *fs, FILE *file)
fprintf(file, "optstr: %s\n", mnt_fs_get_optstr(fs));
fprintf(file, "freq: %d\n", mnt_fs_get_freq(fs));
fprintf(file, "pass: %d\n", mnt_fs_get_passno(fs));
+ fprintf(file, "id: %d\n", mnt_fs_get_id(fs));
+ fprintf(file, "parent: %d\n", mnt_fs_get_parent_id(fs));
+ fprintf(file, "devno: %d:%d\n", major(mnt_fs_get_devno(fs)),
+ minor(mnt_fs_get_devno(fs)));
+
return 0;
}