[PATCH] f2fs: restrict write IO alignment condition

From: Chao Yu
Date: Fri Mar 10 2017 - 04:38:59 EST


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 <yuchao0@xxxxxxxxxx>
---
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) &&
+ fio->new_blkaddr != fio->old_blkaddr &&
fio->new_blkaddr & F2FS_IO_SIZE_MASK(sbi)) {
err = -EAGAIN;
if (!is_read)
--
2.8.2.295.g3f1c1d0