ext4: avoid buffer leak on shutdown in ext4_mark_iloc_dirty()
authorVasily Averin <vvs@virtuozzo.com>
Tue, 6 Nov 2018 21:49:50 +0000 (16:49 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 6 Nov 2018 21:49:50 +0000 (16:49 -0500)
ext4_mark_iloc_dirty() callers expect that it releases iloc->bh
even if it returns an error.

Fixes: 0db1ff222d40 ("ext4: add shutdown bit and check for it")
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org # 4.11
fs/ext4/inode.c

index c3d9a42..55c8fca 100644 (file)
@@ -5835,9 +5835,10 @@ int ext4_mark_iloc_dirty(handle_t *handle,
 {
        int err = 0;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) {
+               put_bh(iloc->bh);
                return -EIO;
-
+       }
        if (IS_I_VERSION(inode))
                inode_inc_iversion(inode);