diff options
author | Chao Yu <yuchao0@huawei.com> | 2021-04-02 17:22:23 +0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2021-04-06 07:18:31 -0700 |
commit | 25ae837e61dee712b4b1df36602ebfe724b2a0b6 (patch) | |
tree | 38667d23d8a4df39a7d8836e5a21188e8f955b3f /fs/f2fs/segment.c | |
parent | a303b0ac920d807cb7da4f1cd85759fbe44fa654 (diff) | |
download | linux-rpi-25ae837e61dee712b4b1df36602ebfe724b2a0b6.tar.gz linux-rpi-25ae837e61dee712b4b1df36602ebfe724b2a0b6.tar.bz2 linux-rpi-25ae837e61dee712b4b1df36602ebfe724b2a0b6.zip |
f2fs: fix to avoid accessing invalid fio in f2fs_allocate_data_block()
Callers may pass fio parameter with NULL value to f2fs_allocate_data_block(),
so we should make sure accessing fio's field after fio's validation check.
Fixes: f608c38c59c6 ("f2fs: clean up parameter of f2fs_allocate_data_block()")
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/segment.c')
-rw-r--r-- | fs/f2fs/segment.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index c517e689a9a3..44897cfecb1e 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3417,12 +3417,12 @@ void f2fs_allocate_data_block(struct f2fs_sb_info *sbi, struct page *page, f2fs_inode_chksum_set(sbi, page); } - if (F2FS_IO_ALIGNED(sbi)) - fio->retry = false; - if (fio) { struct f2fs_bio_info *io; + if (F2FS_IO_ALIGNED(sbi)) + fio->retry = false; + INIT_LIST_HEAD(&fio->list); fio->in_list = true; io = sbi->write_io[fio->type] + fio->temp; |