]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libmount: add mnt_fs_is_regularfs() to public API
authorKarel Zak <kzak@redhat.com>
Wed, 2 Jun 2021 10:14:10 +0000 (12:14 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 2 Jun 2021 10:14:10 +0000 (12:14 +0200)
Fix: https://github.com/karelzak/util-linux/issues/1328
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount/docs/libmount-sections.txt
libmount/src/context_loopdev.c
libmount/src/fs.c
libmount/src/libmount.h.in
libmount/src/libmount.sym
libmount/src/mountP.h

index 89b2b1e8baf0a2e3eee9d2612e79e7296253ec8b..097e2f06630e986f1379980d88e51afb4612b70b 100644 (file)
@@ -249,6 +249,7 @@ mnt_fs_get_vfs_options_all
 mnt_fs_is_kernel
 mnt_fs_is_netfs
 mnt_fs_is_pseudofs
+mnt_fs_is_regularfs
 mnt_fs_is_swaparea
 mnt_fs_match_fstype
 mnt_fs_match_options
index 6462bfb62915d04590c30ed43d915223b438c211..88af20c0e5223033b2e6af9f2057cfb8fbac6c30 100644 (file)
@@ -62,7 +62,7 @@ int mnt_context_is_loopdev(struct libmnt_context *cxt)
         */
        type = mnt_fs_get_fstype(cxt->fs);
 
-       if (mnt_fs_is_regular(cxt->fs) &&
+       if (mnt_fs_is_regularfs(cxt->fs) &&
            (!type || strcmp(type, "auto") == 0 || blkid_known_fstype(type))) {
                struct stat st;
 
index a9242099d42f90f02d22cb1ef343b9632bd06e8e..8b739d6b343776605fbbe2be959c3f5cd0e90a91 100644 (file)
@@ -636,6 +636,21 @@ int mnt_fs_is_netfs(struct libmnt_fs *fs)
        return mnt_fs_get_flags(fs) & MNT_FS_NET;
 }
 
+/**
+ * mnt_fs_is_regularfs:
+ * @fs: filesystem
+ *
+ * Returns: 1 if the filesystem is a regular filesystem (not network or pseudo filesystem).
+ *
+ * Since: 2.38
+ */
+int mnt_fs_is_regularfs(struct libmnt_fs *fs)
+{
+       return !(mnt_fs_is_pseudofs(fs)
+                || mnt_fs_is_netfs(fs)
+                || mnt_fs_is_swaparea(fs));
+}
+
 /**
  * mnt_fs_get_fstype:
  * @fs: fstab/mtab/mountinfo entry pointer
index 2d4d044e951f5722b6a1ab46d14cbac5d557d02d..8ab01369ea813be7d0deef14e28225ae0719bedd 100644 (file)
@@ -515,6 +515,7 @@ extern int mnt_fs_is_kernel(struct libmnt_fs *fs);
 extern int mnt_fs_is_swaparea(struct libmnt_fs *fs);
 extern int mnt_fs_is_netfs(struct libmnt_fs *fs);
 extern int mnt_fs_is_pseudofs(struct libmnt_fs *fs);
+extern int mnt_fs_is_regularfs(struct libmnt_fs *fs);
 
 extern void mnt_free_mntent(struct mntent *mnt);
 extern int mnt_fs_to_mntent(struct libmnt_fs *fs, struct mntent **mnt);
index 85e89ad02084ed7b46a25235b9fc391521dd9396..aa96091b1abcb4c5e5b871037984a86f61ade774 100644 (file)
@@ -361,3 +361,8 @@ MOUNT_2_37 {
        mnt_fs_get_vfs_options_all;
        mnt_table_over_fs;
 } MOUNT_2_35;
+
+
+MOUNT_2_38 {
+       mnt_fs_is_regularfs;
+} MOUNT_2_37;
index ee97c6b4a387d5d443592e5dc397a5a5963b990a..571a74224bc9db9d2b09ed9307984018a89a1b28 100644 (file)
@@ -227,10 +227,6 @@ struct libmnt_fs {
 #define MNT_FS_KERNEL  (1 << 4) /* data from /proc/{mounts,self/mountinfo} */
 #define MNT_FS_MERGED  (1 << 5) /* already merged data from /run/mount/utab */
 
-#define mnt_fs_is_regular(_f)  (!(mnt_fs_is_pseudofs(_f) \
-                                  || mnt_fs_is_netfs(_f) \
-                                  || mnt_fs_is_swaparea(_f)))
-
 /*
  * mtab/fstab/mountinfo file
  */