f2fs: reduce unncessary locking pages during read
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Fri, 8 Mar 2013 12:29:23 +0000 (21:29 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Wed, 20 Mar 2013 09:30:06 +0000 (18:30 +0900)
commit393ff91f57c87d48ffed30878be6e3e486d3a00a
treec80fe33bcf8546ebce9ab6fc043b99889e67536f
parent25c0a6e529b56ca010e1f46239edd07c1b484b63
f2fs: reduce unncessary locking pages during read

This patch reduces redundant locking and unlocking pages during read operations.
In f2fs_readpage, let's use wait_on_page_locked() instead of lock_page.
And then, when we need to modify any data finally, let's lock the page so that
we can avoid lock contention.

[readpage rule]
- The f2fs_readpage returns unlocked page, or released page too in error cases.
- Its caller should handle read error, -EIO, after locking the page, which
  indicates read completion.
- Its caller should check PageUptodate after grab_cache_page.

Signed-off-by: Changman Lee <cm224.lee@samsung.com>
Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/node.c
fs/f2fs/recovery.c