• Curt Wohlgemuth's avatar
    ext4: More buffer head reference leaks · 6487a9d3
    Curt Wohlgemuth authored
    After the patch I posted last week regarding buffer head ref leaks in
    no-journal mode, I looked at all the code that uses buffer heads and
    searched for more potential leaks.
    
    The patch below fixes the issues I found; these can occur even when a
    journal is present.
    
    The change to inode.c fixes a double release if
    ext4_journal_get_create_access() fails.
    
    The changes to namei.c are more complicated.  add_dirent_to_buf() will
    release the input buffer head EXCEPT when it returns -ENOSPC.  There are
    some callers of this routine that don't always do the brelse() in the event
    that -ENOSPC is returned.  Unfortunately, to put this fix into ext4_add_entry()
    required capturing the return value of make_indexed_dir() and
    add_dirent_to_buf().
    Signed-off-by: default avatarCurt Wohlgemuth <curtw@google.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    6487a9d3
inode.c 154 KB