lkml.org 
[lkml]   [2009]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[66/90] ext4: dont update the superblock in ext4_statfs()
    2.6.31-stable review patch.  If anyone has any objections, please let us know.

    ------------------
    (cherry picked from commit 3f8fb9490efbd300887470a2a880a64e04dcc3f5)

    commit a71ce8c6c9bf269b192f352ea555217815cf027e updated ext4_statfs()
    to update the on-disk superblock counters, but modified this buffer
    directly without any journaling of the change. This is one of the
    accesses that was causing the crc errors in journal replay as seen in
    kernel.org bugzilla #14354.

    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    fs/ext4/super.c | 2 --
    1 file changed, 2 deletions(-)

    --- a/fs/ext4/super.c
    +++ b/fs/ext4/super.c
    @@ -3693,13 +3693,11 @@ static int ext4_statfs(struct dentry *de
    buf->f_blocks = ext4_blocks_count(es) - sbi->s_overhead_last;
    buf->f_bfree = percpu_counter_sum_positive(&sbi->s_freeblocks_counter) -
    percpu_counter_sum_positive(&sbi->s_dirtyblocks_counter);
    - ext4_free_blocks_count_set(es, buf->f_bfree);
    buf->f_bavail = buf->f_bfree - ext4_r_blocks_count(es);
    if (buf->f_bfree < ext4_r_blocks_count(es))
    buf->f_bavail = 0;
    buf->f_files = le32_to_cpu(es->s_inodes_count);
    buf->f_ffree = percpu_counter_sum_positive(&sbi->s_freeinodes_counter);
    - es->s_free_inodes_count = cpu_to_le32(buf->f_ffree);
    buf->f_namelen = EXT4_NAME_LEN;
    fsid = le64_to_cpup((void *)es->s_uuid) ^
    le64_to_cpup((void *)es->s_uuid + sizeof(u64));



    \
     
     \ /
      Last update: 2009-12-11 05:51    [W:0.019 / U:2.000 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site