FAILED: patch "[PATCH] f2fs: truncate preallocated blocks in error case" failed to apply to 4.14-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
dc7a10ddee0c56c6d891dd18de5c4ee9869545e0Mon Sep 17 00:00:00 2001
From: Jaegeuk Kim <[email protected]>
Date: Fri, 30 Mar 2018 17:58:13 -0700
Subject: [PATCH] f2fs: truncate preallocated blocks in error case
If write is failed, we must deallocate the blocks that we couldn't write.
fs/f2fs/file.c +9 -0
@@ -2911,6 +2911,8 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) ret =generic_write_checks (iocb, from);if (ret >0 ) { +bool preallocated = false; +size_t target_size =0 ;int err;if (iov_iter_fault_in_readable (from,iov_iter_count (from)))
@@ -2927,6 +2929,9 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) } }else { + preallocated = true; + target_size = iocb->ki_pos +iov_iter_count (from); + err =f2fs_preallocate_blocks (iocb, from);if (err) {clear_inode_flag (inode,FI_NO_PREALLOC );
@@ -2939,6 +2944,10 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)blk_finish_plug (&plug);clear_inode_flag (inode,FI_NO_PREALLOC ); +/* if we couldn't write data, we should deallocate blocks. */ +if (preallocated &&i_size_read (inode) < target_size) +f2fs_truncate (inode); +if (ret >0 )f2fs_update_iostat (F2FS_I_SB (inode),APP_WRITE_IO , ret); }
Sudip Mukherjee
Reviewed-by Chao YuHi Greg,
Quoted 5 lines · On Tue, Apr 17, 2018 at 02:22:54PM +0200, [email protected] wrote:
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
The attached backported patch should apply to v4.14-stable.
--
Regards
Sudip
Quoted 1 line
From
376923c8b2d840bcef6bf6777b5cd2b1d237ca70Mon Sep 17 00:00:00 2001
From: Jaegeuk Kim <[email protected]>
Date: Fri, 30 Mar 2018 17:58:13 -0700
Subject: [PATCH] f2fs: truncate preallocated blocks in error case
commit dc7a10ddee0c56c6d891dd18de5c4ee9869545e0 upstream
If write is failed, we must deallocate the blocks that we couldn't write.
--- fs/f2fs/file.c | 9 +++++++++ 1 file changed, 9 insertions(+)
fs/f2fs/file.c +9 -0
@@ -2892,11 +2892,16 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)inode_lock (inode); ret =generic_write_checks (iocb, from);if (ret >0 ) { +bool preallocated = false; +size_t target_size =0 ;int err;if (iov_iter_fault_in_readable (from,iov_iter_count (from)))set_inode_flag (inode,FI_NO_PREALLOC ); + preallocated = true; + target_size = iocb->ki_pos +iov_iter_count (from); + err =f2fs_preallocate_blocks (iocb, from);if (err) {clear_inode_flag (inode,FI_NO_PREALLOC );
@@ -2908,6 +2913,10 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)blk_finish_plug (&plug);clear_inode_flag (inode,FI_NO_PREALLOC ); +/* if we couldn't write data, we should deallocate blocks. */ +if (preallocated &&i_size_read (inode) < target_size) +f2fs_truncate (inode); +if (ret >0 )f2fs_update_iostat (F2FS_I_SB (inode),APP_WRITE_IO , ret); }
Signature · 1 line
2.11.0
Greg KH
maintainerQuoted 10 lines · Sudip Mukherjee
Hi Greg,
Quoted 5 lines · On Tue, Apr 17, 2018 at 02:22:54PM +0200, [email protected] wrote:
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.The attached backported patch should apply to v4.14-stable.
Now applied, thanks.
greg k-h