From 2f0d27395cb8a90436ff24b70ad1b72496f08b81 Mon Sep 17 00:00:00 2001 From: Erez_Zadok Date: Tue, 31 Jul 2007 19:25:55 -0400 Subject: [PATCH] Unionfs: mmap fixes to unionfs_writepage Don't call unlock_page on lower_page unless lower ->writepage failed. Signed-off-by: Erez Zadok --- fs/unionfs/mmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/unionfs/mmap.c b/fs/unionfs/mmap.c index 145ba5becb5..8b04a462b81 100644 --- a/fs/unionfs/mmap.c +++ b/fs/unionfs/mmap.c @@ -110,8 +110,9 @@ static int unionfs_writepage(struct page *page, struct writeback_control *wbc) err = lower_inode->i_mapping->a_ops->writepage(lower_page, wbc); wbc->for_writepages = saved_for_writepages; /* restore value */ - /* b/c find_lock_page locked it */ - unlock_page(lower_page); + /* b/c find_lock_page locked it and ->writepage unlocks on success */ + if (err) + unlock_page(lower_page); /* b/c grab_cache_page increased refcnt */ page_cache_release(lower_page); -- 2.43.0