• D
    vfs: Don't call attach_nobh_buffers() with an empty list · d4cf109f
    Dave Kleikamp 提交于
    This is a modification of a patch by Bill Pemberton <wfp5p@virginia.edu>
    
    nobh_write_end() could call attach_nobh_buffers() with head == NULL.
    This would result in a trap when attach_nobh_buffers() attempted to
    access bh->b_this_page.
    
    This can be illustrated by running the writev01 testcase from LTP on jfs.
    
    This error was introduced by commit 5b41e74a "vfs: fix data leak in
    nobh_write_end()".  That patch did not take into account that if
    PageMappedToDisk() is true upon entry to nobh_write_begin(), then no
    buffers will be allocated for the page.  In that case, we won't have to
    worry about a failed write leaving unitialized data in the page.
    
    Of course, head != NULL implies !page_has_buffers(page), so no need to
    test both.
    Signed-off-by: NDave Kleikamp <shaggy@linux.vnet.ibm.com>
    Cc: Bill Pemberton <wfp5p@virginia.edu>
    Cc: Dmitri Monakhov <dmonakhov@openvz.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    d4cf109f
buffer.c 89.5 KB