OSDN Git Service

f2fs: clear PageError on the read path
authorJaegeuk Kim <jaegeuk@kernel.org>
Tue, 25 Sep 2018 20:54:33 +0000 (13:54 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:08:34 +0000 (11:08 -0800)
commita28549b8c14c868827dd32d856738685261d0e31
treea958992172f371e32ceecb42244cd7d06ba4fdd8
parentf4b5f4393bff46eeece7168661c3424bb720d272
f2fs: clear PageError on the read path

[ Upstream commit fb7d70db305a1446864227abf711b756568f8242 ]

When running fault injection test, I hit somewhat wrong behavior in f2fs_gc ->
gc_data_segment():

0. fault injection generated some PageError'ed pages

1. gc_data_segment
 -> f2fs_get_read_data_page(REQ_RAHEAD)

2. move_data_page
 -> f2fs_get_lock_data_page()
  -> f2f_get_read_data_page()
   -> f2fs_submit_page_read()
    -> submit_bio(READ)
  -> return EIO due to PageError
  -> fail to move data

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/f2fs/data.c