forked from pool/bcache-tools
Jan Engelhardt
f3f439bb3f
- bcache-tools: Update super block version in bch_set_feature_* routines (jsc#SLE-9807) 0028-bcache-tools-Update-super-block-version-in-bch_set_f.patch OBS-URL: https://build.opensuse.org/request/show/874878 OBS-URL: https://build.opensuse.org/package/show/filesystems/bcache-tools?expand=0&rev=33
57 lines
2.0 KiB
Diff
57 lines
2.0 KiB
Diff
From 9e72a28b0faca4754ebcc1d7030d555120b03be4 Mon Sep 17 00:00:00 2001
|
|
From: Coly Li <colyli@suse.de>
|
|
Date: Fri, 22 Jan 2021 23:05:07 +0800
|
|
Subject: [PATCH] bcache-tools: Update super block version in bch_set_feature_*
|
|
routines
|
|
Git-commit: 9e72a28b0faca4754ebcc1d7030d555120b03be4
|
|
References: jsc#SLE-9807
|
|
|
|
When calling bch_set_feature_* routines, it indicates the super block
|
|
supports feature set and its version of cache device should at least be
|
|
BCACHE_SB_VERSION_CDEV_WITH_FEATURES.
|
|
|
|
In order to always keep the cache device super block version being
|
|
updated, this patch checks whether the super block version is set
|
|
correctly when calling bch_set_feature_* routines, if not then set
|
|
the version to BCACHE_SB_VERSION_CDEV_WITH_FEATURES.
|
|
|
|
Signed-off-by: Coly Li <colyli@suse.de>
|
|
---
|
|
bcache.h | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/bcache.h b/bcache.h
|
|
index 6dcdbb7..46d9683 100644
|
|
--- a/bcache.h
|
|
+++ b/bcache.h
|
|
@@ -228,6 +228,8 @@ static inline int bch_has_feature_##name(struct cache_sb *sb) \
|
|
} \
|
|
static inline void bch_set_feature_##name(struct cache_sb *sb) \
|
|
{ \
|
|
+ if ((sb)->version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES) \
|
|
+ (sb)->version = BCACHE_SB_VERSION_CDEV_WITH_FEATURES; \
|
|
(sb)->feature_compat |= \
|
|
BCH##_FEATURE_COMPAT_##flagname; \
|
|
} \
|
|
@@ -245,6 +247,8 @@ static inline int bch_has_feature_##name(struct cache_sb *sb) \
|
|
} \
|
|
static inline void bch_set_feature_##name(struct cache_sb *sb) \
|
|
{ \
|
|
+ if ((sb)->version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES) \
|
|
+ (sb)->version = BCACHE_SB_VERSION_CDEV_WITH_FEATURES; \
|
|
(sb)->feature_ro_compat |= \
|
|
BCH##_FEATURE_RO_COMPAT_##flagname; \
|
|
} \
|
|
@@ -262,6 +266,8 @@ static inline int bch_has_feature_##name(struct cache_sb *sb) \
|
|
} \
|
|
static inline void bch_set_feature_##name(struct cache_sb *sb) \
|
|
{ \
|
|
+ if ((sb)->version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES) \
|
|
+ (sb)->version = BCACHE_SB_VERSION_CDEV_WITH_FEATURES; \
|
|
(sb)->feature_incompat |= \
|
|
BCH##_FEATURE_INCOMPAT_##flagname; \
|
|
} \
|
|
--
|
|
2.26.2
|
|
|