aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ext4/super.c4
-rw-r--r--include/linux/ext4_fs.h6
2 files changed, 5 insertions, 5 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index f9cb64c5010b..11e80f061cb2 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -2667,7 +2667,7 @@ static int ext4_statfs (struct dentry * dentry, struct kstatfs * buf)
2667 2667
2668 if (test_opt(sb, MINIX_DF)) { 2668 if (test_opt(sb, MINIX_DF)) {
2669 sbi->s_overhead_last = 0; 2669 sbi->s_overhead_last = 0;
2670 } else if (sbi->s_blocks_last != le32_to_cpu(es->s_blocks_count)) { 2670 } else if (sbi->s_blocks_last != ext4_blocks_count(es)) {
2671 unsigned long ngroups = sbi->s_groups_count, i; 2671 unsigned long ngroups = sbi->s_groups_count, i;
2672 ext4_fsblk_t overhead = 0; 2672 ext4_fsblk_t overhead = 0;
2673 smp_rmb(); 2673 smp_rmb();
@@ -2702,7 +2702,7 @@ static int ext4_statfs (struct dentry * dentry, struct kstatfs * buf)
2702 overhead += ngroups * (2 + sbi->s_itb_per_group); 2702 overhead += ngroups * (2 + sbi->s_itb_per_group);
2703 sbi->s_overhead_last = overhead; 2703 sbi->s_overhead_last = overhead;
2704 smp_wmb(); 2704 smp_wmb();
2705 sbi->s_blocks_last = le32_to_cpu(es->s_blocks_count); 2705 sbi->s_blocks_last = ext4_blocks_count(es);
2706 } 2706 }
2707 2707
2708 buf->f_type = EXT4_SUPER_MAGIC; 2708 buf->f_type = EXT4_SUPER_MAGIC;
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h
index f5d57c7c0dd7..d30d079a53e2 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -501,7 +501,7 @@ do { \
501 */ 501 */
502struct ext4_super_block { 502struct ext4_super_block {
503/*00*/ __le32 s_inodes_count; /* Inodes count */ 503/*00*/ __le32 s_inodes_count; /* Inodes count */
504 __le32 s_blocks_count; /* Blocks count */ 504 __le32 s_blocks_count_lo; /* Blocks count */
505 __le32 s_r_blocks_count; /* Reserved blocks count */ 505 __le32 s_r_blocks_count; /* Reserved blocks count */
506 __le32 s_free_blocks_count; /* Free blocks count */ 506 __le32 s_free_blocks_count; /* Free blocks count */
507/*10*/ __le32 s_free_inodes_count; /* Free inodes count */ 507/*10*/ __le32 s_free_inodes_count; /* Free inodes count */
@@ -981,7 +981,7 @@ extern void ext4_inode_table_set(struct super_block *sb,
981static inline ext4_fsblk_t ext4_blocks_count(struct ext4_super_block *es) 981static inline ext4_fsblk_t ext4_blocks_count(struct ext4_super_block *es)
982{ 982{
983 return ((ext4_fsblk_t)le32_to_cpu(es->s_blocks_count_hi) << 32) | 983 return ((ext4_fsblk_t)le32_to_cpu(es->s_blocks_count_hi) << 32) |
984 le32_to_cpu(es->s_blocks_count); 984 le32_to_cpu(es->s_blocks_count_lo);
985} 985}
986 986
987static inline ext4_fsblk_t ext4_r_blocks_count(struct ext4_super_block *es) 987static inline ext4_fsblk_t ext4_r_blocks_count(struct ext4_super_block *es)
@@ -999,7 +999,7 @@ static inline ext4_fsblk_t ext4_free_blocks_count(struct ext4_super_block *es)
999static inline void ext4_blocks_count_set(struct ext4_super_block *es, 999static inline void ext4_blocks_count_set(struct ext4_super_block *es,
1000 ext4_fsblk_t blk) 1000 ext4_fsblk_t blk)
1001{ 1001{
1002 es->s_blocks_count = cpu_to_le32((u32)blk); 1002 es->s_blocks_count_lo = cpu_to_le32((u32)blk);
1003 es->s_blocks_count_hi = cpu_to_le32(blk >> 32); 1003 es->s_blocks_count_hi = cpu_to_le32(blk >> 32);
1004} 1004}
1005 1005