mirror of
https://github.com/torvalds/linux
synced 2024-10-02 01:10:22 +00:00
bcache: only check feature sets when sb->version >= BCACHE_SB_VERSION_CDEV_WITH_FEATURES
For super block version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES, it doesn't make sense to check the feature sets. This patch checks super block version in bch_has_feature_* routines, if the version doesn't have feature sets yet, returns 0 (false) to the caller. Fixes:5342fd4255
("bcache: set bcache device into read-only mode for BCH_FEATURE_INCOMPAT_OBSO_LARGE_BUCKET") Fixes:ffa4703275
("bcache: add bucket_size_hi into struct cache_sb_disk for large bucket") Cc: stable@vger.kernel.org # 5.9+ Reported-and-tested-by: Bockholdt Arne <a.bockholdt@precitec-optronik.de> Signed-off-by: Coly Li <colyli@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
0fe37724f8
commit
0df28cad06
|
@ -33,6 +33,8 @@
|
|||
#define BCH_FEATURE_COMPAT_FUNCS(name, flagname) \
|
||||
static inline int bch_has_feature_##name(struct cache_sb *sb) \
|
||||
{ \
|
||||
if (sb->version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES) \
|
||||
return 0; \
|
||||
return (((sb)->feature_compat & \
|
||||
BCH##_FEATURE_COMPAT_##flagname) != 0); \
|
||||
} \
|
||||
|
@ -50,6 +52,8 @@ static inline void bch_clear_feature_##name(struct cache_sb *sb) \
|
|||
#define BCH_FEATURE_RO_COMPAT_FUNCS(name, flagname) \
|
||||
static inline int bch_has_feature_##name(struct cache_sb *sb) \
|
||||
{ \
|
||||
if (sb->version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES) \
|
||||
return 0; \
|
||||
return (((sb)->feature_ro_compat & \
|
||||
BCH##_FEATURE_RO_COMPAT_##flagname) != 0); \
|
||||
} \
|
||||
|
@ -67,6 +71,8 @@ static inline void bch_clear_feature_##name(struct cache_sb *sb) \
|
|||
#define BCH_FEATURE_INCOMPAT_FUNCS(name, flagname) \
|
||||
static inline int bch_has_feature_##name(struct cache_sb *sb) \
|
||||
{ \
|
||||
if (sb->version < BCACHE_SB_VERSION_CDEV_WITH_FEATURES) \
|
||||
return 0; \
|
||||
return (((sb)->feature_incompat & \
|
||||
BCH##_FEATURE_INCOMPAT_##flagname) != 0); \
|
||||
} \
|
||||
|
|
Loading…
Reference in a new issue