diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index ac6452261926ce0b73be09d6d0437441c742bec6..a68b2cc067bc412cd5837c40bcb3d456c2012f04 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2925,6 +2925,8 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
 						iov_iter_count(from)) ||
 					f2fs_has_inline_data(inode) ||
 					f2fs_force_buffered_io(inode, WRITE)) {
+						clear_inode_flag(inode,
+								FI_NO_PREALLOC);
 						inode_unlock(inode);
 						return -EAGAIN;
 				}