diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-10-29 22:37:22 +0100 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-11-05 02:34:14 +0100 |
commit | 6a8f8ca582a1bafe6b620e000316206c8719f1d0 (patch) | |
tree | c66b23b131af9dceb04004d8851cbcbb17467bba /fs/f2fs/f2fs.h | |
parent | f2fs: send discard commands in larger extent (diff) | |
download | linux-6a8f8ca582a1bafe6b620e000316206c8719f1d0.tar.xz linux-6a8f8ca582a1bafe6b620e000316206c8719f1d0.zip |
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 '')
-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 afe3022ffac5..5a9705842f10 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 */ |