ext4: missing unlock/put_page() in ext4_try_to_write_inline_data()
authorMaurizio Lombardi <mlombard@redhat.com>
Tue, 4 Dec 2018 05:06:53 +0000 (00:06 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 4 Dec 2018 05:06:53 +0000 (00:06 -0500)
In case of error, ext4_try_to_write_inline_data() should unlock
and release the page it holds.

Fixes: f19d5870cbf7 ("ext4: add normal write support for inline data")
Cc: stable@kernel.org # 3.8
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inline.c

index 9c4bac18cc6c0c58a588dafcecc689f6ebe46b1a..27373d88b5f0115341b4c574599bd21ee8767fee 100644 (file)
@@ -705,8 +705,11 @@ int ext4_try_to_write_inline_data(struct address_space *mapping,
 
        if (!PageUptodate(page)) {
                ret = ext4_read_inline_page(inode, page);
-               if (ret < 0)
+               if (ret < 0) {
+                       unlock_page(page);
+                       put_page(page);
                        goto out_up_read;
+               }
        }
 
        ret = 1;