[PATCH] bcache-tools: Update super block version in bch_set_feature_* routines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxx>
---
 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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux