f2fs: avoid race condition in handling wait_io
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 29 Oct 2014 21:37:22 +0000 (14:37 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 5 Nov 2014 01:34:14 +0000 (17:34 -0800)
commit6a8f8ca582a1bafe6b620e000316206c8719f1d0
treec66b23b131af9dceb04004d8851cbcbb17467bba
parentadf4983bde9c07c074be12eadb040a88479aa421
f2fs: avoid race condition in handling wait_io

__submit_merged_bio    f2fs_write_end_io        f2fs_write_end_io
                       wait_io = X              wait_io = x
                       complete(X)              complete(X)
                       wait_io = NULL
wait_for_completion()
free(X)
                                                 spin_lock(X)
                                                 kernel panic

In order to avoid this, this patch removes the wait_io facility.
Instead, we can use wait_on_all_pages_writeback(sbi) to wait for end_ios.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/f2fs.h