From efe73c3ef120997c14ad95bf1857a044e99872b6 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 2 Mar 2010 22:34:56 +0100 Subject: 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 --- shlibs/mount/src/fs.c | 54 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 7 deletions(-) (limited to 'shlibs/mount/src/fs.c') 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,13 +391,50 @@ 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; return 0; } +/** + * 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 @@ -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; } -- cgit v1.2.3-55-g7522