• Jie Liu's avatar
    ocfs2: Revert 40bd62eb to avoid regression in extended allocation · 6115ea28
    Jie Liu authored
    Revert commit 40bd62eb ("fs/ocfs2/journal.h: add bits_wanted while
    calculating credits in ocfs2_calc_extend_credits").
    
    Unfortunately this change broke fallocate even if there is insufficient
    disk space for the preallocation, which is a serious problem.
    
      # df -h
      /dev/sda8        22G  1.2G   21G   6% /ocfs2
      # fallocate -o 0 -l 200M /ocfs2/testfile
      fallocate: /ocfs2/test: fallocate failed: No space left on device
    
    and a kernel warning:
    
      CPU: 3 PID: 3656 Comm: fallocate Tainted: G        W  O 3.11.0-rc3 #2
      Call Trace:
        dump_stack+0x77/0x9e
        warn_slowpath_common+0xc4/0x110
        warn_slowpath_null+0x2a/0x40
        start_this_handle+0x6c/0x640 [jbd2]
        jbd2__journal_start+0x138/0x300 [jbd2]
        jbd2_journal_start+0x23/0x30 [jbd2]
        ocfs2_start_trans+0x166/0x300 [ocfs2]
        __ocfs2_extend_allocation+0x38f/0xdb0 [ocfs2]
        ocfs2_allocate_unwritten_extents+0x3c9/0x520
        __ocfs2_change_file_space+0x5e0/0xa60 [ocfs2]
        ocfs2_fallocate+0xb1/0xe0 [ocfs2]
        do_fallocate+0x1cb/0x220
        SyS_fallocate+0x6f/0xb0
        system_call_fastpath+0x16/0x1b
      JBD2: fallocate wants too many credits (51216 > 4381)
    Signed-off-by: default avatarJie Liu <jeff.liu@oracle.com>
    Cc: Goldwyn Rodrigues <rgoldwyn@suse.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Mark Fasheh <mfasheh@suse.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    6115ea28
journal.h 22 KB