diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 65c9586b2952..3f3becd46362 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1861,8 +1861,13 @@ got_it: if (fio->need_lock == LOCK_REQ) f2fs_unlock_op(fio->sbi); err = f2fs_inplace_write_data(fio); - if (err && PageWriteback(page)) - end_page_writeback(page); + if (err) { + if (f2fs_encrypted_file(inode)) + fscrypt_pullback_bio_page(&fio->encrypted_page, + true); + if (PageWriteback(page)) + end_page_writeback(page); + } trace_f2fs_do_write_data_page(fio->page, IPU); set_inode_flag(inode, FI_UPDATE_WRITE); return err;