• Theodore Ts'o's avatar
    ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC · 2de770a4
    Theodore Ts'o authored
    Previously add_dirent_to_buf() did not free its passed-in buffer head
    in the case of ENOSPC, since in some cases the caller still needed it.
    However, this led to potential buffer head leaks since not all callers
    dealt with this correctly.  Fix this by making simplifying the freeing
    convention; now add_dirent_to_buf() *never* frees the passed-in buffer
    head, and leaves that to the responsibility of its caller.  This makes
    things cleaner and easier to prove that the code is neither leaking
    buffer heads or calling brelse() one time too many.
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Cc: Curt Wohlgemuth <curtw@google.com>
    Cc: stable@kernel.org
    2de770a4
namei.c 69.3 KB