linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ext4: Do not interpret high bytes if 64bit feature is disabled
@ 2020-08-25 15:00 Petr Malat
  2020-10-03  4:05 ` Theodore Y. Ts'o
  0 siblings, 1 reply; 2+ messages in thread
From: Petr Malat @ 2020-08-25 15:00 UTC (permalink / raw)
  To: linux-ext4; +Cc: adilger.kernel, tytso, Petr Malat

Fields s_free_blocks_count_hi, s_r_blocks_count_hi and s_blocks_count_hi
are not valid if EXT4_FEATURE_INCOMPAT_64BIT is not enabled and should be
treated as zeroes.

Signed-off-by: Petr Malat <oss@malat.biz>
---
 fs/ext4/ext4.h | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 523e00d7b392..eafb92fe7735 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3012,22 +3012,24 @@ static inline int ext4_has_group_desc_csum(struct super_block *sb)
 	return ext4_has_feature_gdt_csum(sb) || ext4_has_metadata_csum(sb);
 }
 
+#define ext4_read_incompat_64bit_val(es, name) \
+	(((es)->s_feature_incompat & cpu_to_le32(EXT4_FEATURE_INCOMPAT_64BIT) \
+		? (ext4_fsblk_t)le32_to_cpu(es->name##_hi) << 32 : 0) | \
+		le32_to_cpu(es->name##_lo))
+
 static inline ext4_fsblk_t ext4_blocks_count(struct ext4_super_block *es)
 {
-	return ((ext4_fsblk_t)le32_to_cpu(es->s_blocks_count_hi) << 32) |
-		le32_to_cpu(es->s_blocks_count_lo);
+	return ext4_read_incompat_64bit_val(es, s_blocks_count);
 }
 
 static inline ext4_fsblk_t ext4_r_blocks_count(struct ext4_super_block *es)
 {
-	return ((ext4_fsblk_t)le32_to_cpu(es->s_r_blocks_count_hi) << 32) |
-		le32_to_cpu(es->s_r_blocks_count_lo);
+	return ext4_read_incompat_64bit_val(es, s_r_blocks_count);
 }
 
 static inline ext4_fsblk_t ext4_free_blocks_count(struct ext4_super_block *es)
 {
-	return ((ext4_fsblk_t)le32_to_cpu(es->s_free_blocks_count_hi) << 32) |
-		le32_to_cpu(es->s_free_blocks_count_lo);
+	return ext4_read_incompat_64bit_val(es, s_free_blocks_count);
 }
 
 static inline void ext4_blocks_count_set(struct ext4_super_block *es,
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ext4: Do not interpret high bytes if 64bit feature is disabled
  2020-08-25 15:00 [PATCH] ext4: Do not interpret high bytes if 64bit feature is disabled Petr Malat
@ 2020-10-03  4:05 ` Theodore Y. Ts'o
  0 siblings, 0 replies; 2+ messages in thread
From: Theodore Y. Ts'o @ 2020-10-03  4:05 UTC (permalink / raw)
  To: Petr Malat; +Cc: linux-ext4, adilger.kernel

On Tue, Aug 25, 2020 at 05:00:16PM +0200, Petr Malat wrote:
> Fields s_free_blocks_count_hi, s_r_blocks_count_hi and s_blocks_count_hi
> are not valid if EXT4_FEATURE_INCOMPAT_64BIT is not enabled and should be
> treated as zeroes.
> 
> Signed-off-by: Petr Malat <oss@malat.biz>

Thanks, applied.

					- Ted

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-10-03  4:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-25 15:00 [PATCH] ext4: Do not interpret high bytes if 64bit feature is disabled Petr Malat
2020-10-03  4:05 ` Theodore Y. Ts'o

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).