From 61fa16c1ca0d60dfcc2fc759171461de55e768ad Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 15 Oct 2021 17:53:48 +0200 Subject: resize-fs: add helper that checks if the specified fs can do online grow/shrink There's only one that can do this (btrfs), but let's abstract that fact, a bit in case the other file systems learn this too one day. --- src/shared/resize-fs.c | 5 +++++ src/shared/resize-fs.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/shared/resize-fs.c b/src/shared/resize-fs.c index 33cb78babf..178aefac21 100644 --- a/src/shared/resize-fs.c +++ b/src/shared/resize-fs.c @@ -119,3 +119,8 @@ uint64_t minimal_size_by_fs_name(const char *name) { return UINT64_MAX; } + +/* Returns true for the only fs that can online shrink *and* grow */ +bool fs_can_online_shrink_and_grow(statfs_f_type_t magic) { + return magic == (statfs_f_type_t) BTRFS_SUPER_MAGIC; +} diff --git a/src/shared/resize-fs.h b/src/shared/resize-fs.h index 8831fd8b40..312005f7e2 100644 --- a/src/shared/resize-fs.h +++ b/src/shared/resize-fs.h @@ -13,3 +13,5 @@ int resize_fs(int fd, uint64_t sz, uint64_t *ret_size); uint64_t minimal_size_by_fs_magic(statfs_f_type_t magic); uint64_t minimal_size_by_fs_name(const char *str); + +bool fs_can_online_shrink_and_grow(statfs_f_type_t magic); -- cgit v1.2.1