f2fs: avoid unneeded page release for correct _count of page
authorChao Yu <chao2.yu@samsung.com>
Thu, 5 Dec 2013 01:54:56 +0000 (09:54 +0800)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 23 Dec 2013 01:18:06 +0000 (10:18 +0900)
commitb9987a277f1ec9dba203d04c3a20d967c01a1fba
treeabb337cbc3d88aaa49836c191aa4f33e2226de43
parenta0acdfe05a954363861a65eb537573ab417cb7ed
f2fs: avoid unneeded page release for correct _count of page

In find_fsync_dnodes() and recover_data(), our flow is like this:

->f2fs_submit_page_bio()
-> f2fs_put_page()
-> page_cache_release() ---- page->_count declined to zero.
->__free_pages()
-> put_page_testzero() ---- page->_count will be declined again.

We will get a segment fault in put_page_testzero when CONFIG_DEBUG_VM
is on, or return MM with a bad page with wrong _count num.

So let's just release this page.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/recovery.c