From: YmrDtnJu Date: Sat, 6 Jun 2020 10:42:01 +0000 (+0200) Subject: basic: New function fstype_is_blockdev_backed for fstypes that need a blockdev X-Git-Tag: v246-rc1~190^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ac2474e4ffea1927a24d0cec878d93cb854e80b0;p=thirdparty%2Fsystemd.git basic: New function fstype_is_blockdev_backed for fstypes that need a blockdev The function returns true if the specified filesystem requires a block device. --- diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c index 0b3587ff553..d4a621c7ae8 100644 --- a/src/basic/mountpoint-util.c +++ b/src/basic/mountpoint-util.c @@ -338,6 +338,16 @@ bool fstype_is_api_vfs(const char *fstype) { "tracefs"); } +bool fstype_is_blockdev_backed(const char *fstype) { + const char *x; + + x = startswith(fstype, "fuse."); + if (x) + fstype = x; + + return !streq(fstype, "9p") && !fstype_is_network(fstype) && !fstype_is_api_vfs(fstype); +} + bool fstype_is_ro(const char *fstype) { /* All Linux file systems that are necessarily read-only */ return STR_IN_SET(fstype, diff --git a/src/basic/mountpoint-util.h b/src/basic/mountpoint-util.h index 5398836fed4..ab4ed193945 100644 --- a/src/basic/mountpoint-util.h +++ b/src/basic/mountpoint-util.h @@ -14,6 +14,7 @@ int path_is_mount_point(const char *path, const char *root, int flags); bool fstype_is_network(const char *fstype); bool fstype_is_api_vfs(const char *fstype); +bool fstype_is_blockdev_backed(const char *fstype); bool fstype_is_ro(const char *fsype); bool fstype_can_discard(const char *fstype); bool fstype_can_uid_gid(const char *fstype);