On 2017/3/11 2:50, Jaegeuk Kim wrote: > On 03/10, Chao Yu wrote: >> We should only align start offset of bio with defined IO_SIZE for below >> conditions: >> a. write IOs >> b. Out-place-update >> c. non-meta page >> >> Signed-off-by: Chao Yu <yuch...@huawei.com> >> --- >> fs/f2fs/data.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c >> index 1375fef11146..3e6b0cc5e36a 100644 >> --- a/fs/f2fs/data.c >> +++ b/fs/f2fs/data.c >> @@ -395,7 +395,9 @@ int f2fs_submit_page_mbio(struct f2fs_io_info *fio) >> __submit_merged_bio(io); >> alloc_new: >> if (io->bio == NULL) { >> - if ((fio->type == DATA || fio->type == NODE) && >> + if (!is_read && (fio->type == DATA || fio->type == NODE) && >> + bio_page->mapping != META_MAPPING(sbi) && > > BUG_ON(), since it's covered by fio->type == DATA || fio->type == NODE.
Oh, the condition I added here is wrong, since move_encrypted_block will add a meta page into DATA type bio cache, also we can not add a BUG_ON here. > >> + fio->new_blkaddr != fio->old_blkaddr && > > BUG_ON(), since LFS mount option doesn't allow any in-place updates. You're right. :) > >> fio->new_blkaddr & F2FS_IO_SIZE_MASK(sbi)) { > > So, is_read is worth to check? Yes. I will fix them and resend v2. Thanks, > > Thanks, > >> err = -EAGAIN; >> if (!is_read) >> -- >> 2.8.2.295.g3f1c1d0 > > . >