Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce23447f authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: fix to cover io->bio with io_rwsem



In the f2fs_wait_on_page_writeback, io->bio should be covered by io_rwsem.
Otherwise, the bio pointer can become a dangling pointer due to data races.

Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
parent d54c795b
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1049,15 +1049,14 @@ static inline bool is_merged_page(struct f2fs_sb_info *sbi,
{
	enum page_type btype = PAGE_TYPE_OF_BIO(type);
	struct f2fs_bio_info *io = &sbi->write_io[btype];
	struct bio *bio = io->bio;
	struct bio_vec *bvec;
	int i;

	down_read(&io->io_rwsem);
	if (!bio)
	if (!io->bio)
		goto out;

	bio_for_each_segment_all(bvec, bio, i) {
	bio_for_each_segment_all(bvec, io->bio, i) {
		if (page == bvec->bv_page) {
			up_read(&io->io_rwsem);
			return true;