diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-10-29 14:37:22 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-11-04 17:34:14 -0800 |
commit | 6a8f8ca582a1bafe6b620e000316206c8719f1d0 (patch) | |
tree | c66b23b131af9dceb04004d8851cbcbb17467bba /fs/f2fs/f2fs.h | |
parent | adf4983bde9c07c074be12eadb040a88479aa421 (diff) | |
download | op-kernel-dev-6a8f8ca582a1bafe6b620e000316206c8719f1d0.zip op-kernel-dev-6a8f8ca582a1bafe6b620e000316206c8719f1d0.tar.gz |
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>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r-- | fs/f2fs/f2fs.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index afe3022..5a97058 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -516,7 +516,6 @@ struct f2fs_sb_info { /* for bio operations */ struct f2fs_bio_info read_io; /* for read bios */ struct f2fs_bio_info write_io[NR_PAGE_TYPE]; /* for write bios */ - struct completion *wait_io; /* for completion bios */ /* for checkpoint */ struct f2fs_checkpoint *ckpt; /* raw checkpoint pointer */ |