aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ext4/super.c7
-rw-r--r--include/linux/percpu_counter.h10
2 files changed, 15 insertions, 2 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 9ce3b67b7269..c9e06c647ce8 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3964,9 +3964,12 @@ static int ext4_commit_super(struct super_block *sb, int sync)
3964 else 3964 else
3965 es->s_kbytes_written = 3965 es->s_kbytes_written =
3966 cpu_to_le64(EXT4_SB(sb)->s_kbytes_written); 3966 cpu_to_le64(EXT4_SB(sb)->s_kbytes_written);
3967 ext4_free_blocks_count_set(es, percpu_counter_sum_positive( 3967 if (percpu_counter_initialized(&EXT4_SB(sb)->s_freeblocks_counter))
3968 ext4_free_blocks_count_set(es, percpu_counter_sum_positive(
3968 &EXT4_SB(sb)->s_freeblocks_counter)); 3969 &EXT4_SB(sb)->s_freeblocks_counter));
3969 es->s_free_inodes_count = cpu_to_le32(percpu_counter_sum_positive( 3970 if (percpu_counter_initialized(&EXT4_SB(sb)->s_freeinodes_counter))
3971 es->s_free_inodes_count =
3972 cpu_to_le32(percpu_counter_sum_positive(
3970 &EXT4_SB(sb)->s_freeinodes_counter)); 3973 &EXT4_SB(sb)->s_freeinodes_counter));
3971 sb->s_dirt = 0; 3974 sb->s_dirt = 0;
3972 BUFFER_TRACE(sbh, "marking dirty"); 3975 BUFFER_TRACE(sbh, "marking dirty");
diff --git a/include/linux/percpu_counter.h b/include/linux/percpu_counter.h
index 8a7d510ffa9c..46f6ba56fa91 100644
--- a/include/linux/percpu_counter.h
+++ b/include/linux/percpu_counter.h
@@ -78,6 +78,11 @@ static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc)
78 return 1; 78 return 1;
79} 79}
80 80
81static inline int percpu_counter_initialized(struct percpu_counter *fbc)
82{
83 return (fbc->counters != NULL);
84}
85
81#else 86#else
82 87
83struct percpu_counter { 88struct percpu_counter {
@@ -143,6 +148,11 @@ static inline s64 percpu_counter_sum(struct percpu_counter *fbc)
143 return percpu_counter_read(fbc); 148 return percpu_counter_read(fbc);
144} 149}
145 150
151static inline int percpu_counter_initialized(struct percpu_counter *fbc)
152{
153 return 1;
154}
155
146#endif /* CONFIG_SMP */ 156#endif /* CONFIG_SMP */
147 157
148static inline void percpu_counter_inc(struct percpu_counter *fbc) 158static inline void percpu_counter_inc(struct percpu_counter *fbc)