mirror of https://gitee.com/openkylin/linux.git
f2fs: use PGP_LOCK to check its truncation
Previously, after trylock_page is succeeded, it doesn't check its mapping. In order to fix that, we can just give PGP_LOCK to pagecache_get_page. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
675f10bde6
commit
4a6de50d54
|
@ -1202,13 +1202,10 @@ static void flush_inline_data(struct f2fs_sb_info *sbi, nid_t ino)
|
|||
if (!inode)
|
||||
return;
|
||||
|
||||
page = pagecache_get_page(inode->i_mapping, 0, FGP_NOWAIT, 0);
|
||||
page = pagecache_get_page(inode->i_mapping, 0, FGP_LOCK|FGP_NOWAIT, 0);
|
||||
if (!page)
|
||||
goto iput_out;
|
||||
|
||||
if (!trylock_page(page))
|
||||
goto release_out;
|
||||
|
||||
if (!PageUptodate(page))
|
||||
goto page_out;
|
||||
|
||||
|
@ -1223,9 +1220,7 @@ static void flush_inline_data(struct f2fs_sb_info *sbi, nid_t ino)
|
|||
else
|
||||
set_page_dirty(page);
|
||||
page_out:
|
||||
unlock_page(page);
|
||||
release_out:
|
||||
f2fs_put_page(page, 0);
|
||||
f2fs_put_page(page, 1);
|
||||
iput_out:
|
||||
iput(inode);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue