diff mbox series

[PATCHv2] ext2: Fix ki_pos update for DIO buffered-io fallback case

Message ID d595bee9f2475ed0e8a2e7fb94f7afc2c6ffc36a.1700643443.git.ritesh.list@gmail.com (mailing list archive)
State New, archived
Headers show
Series [PATCHv2] ext2: Fix ki_pos update for DIO buffered-io fallback case | expand

Commit Message

Ritesh Harjani (IBM) Nov. 22, 2023, 9:02 a.m. UTC
Commit "filemap: update ki_pos in generic_perform_write", made updating
of ki_pos into common code in generic_perform_write() function.
This also causes generic/091 to fail.
This happened due to an in-flight collision with:
fb5de4358e1a ("ext2: Move direct-io to use iomap"). I have chosen fixes tag
based on which commit got landed later to upstream kernel.

Fixes: 182c25e9c157 ("filemap: update ki_pos in generic_perform_write")
Cc: stable@vger.kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
---
 fs/ext2/file.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Jan Kara Nov. 22, 2023, 9:18 a.m. UTC | #1
On Wed 22-11-23 14:32:15, Ritesh Harjani (IBM) wrote:
> Commit "filemap: update ki_pos in generic_perform_write", made updating
> of ki_pos into common code in generic_perform_write() function.
> This also causes generic/091 to fail.
> This happened due to an in-flight collision with:
> fb5de4358e1a ("ext2: Move direct-io to use iomap"). I have chosen fixes tag
> based on which commit got landed later to upstream kernel.
> 
> Fixes: 182c25e9c157 ("filemap: update ki_pos in generic_perform_write")
> Cc: stable@vger.kernel.org
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>

Thanks! I've applied the patch to my tree and will push it to Linus soon.

								Honza

> ---
>  fs/ext2/file.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/fs/ext2/file.c b/fs/ext2/file.c
> index 1039e5bf90af..4ddc36f4dbd4 100644
> --- a/fs/ext2/file.c
> +++ b/fs/ext2/file.c
> @@ -258,7 +258,6 @@ static ssize_t ext2_dio_write_iter(struct kiocb *iocb, struct iov_iter *from)
>  			goto out_unlock;
>  		}
>  
> -		iocb->ki_pos += status;
>  		ret += status;
>  		endbyte = pos + status - 1;
>  		ret2 = filemap_write_and_wait_range(inode->i_mapping, pos,
> -- 
> 2.41.0
>
diff mbox series

Patch

diff --git a/fs/ext2/file.c b/fs/ext2/file.c
index 1039e5bf90af..4ddc36f4dbd4 100644
--- a/fs/ext2/file.c
+++ b/fs/ext2/file.c
@@ -258,7 +258,6 @@  static ssize_t ext2_dio_write_iter(struct kiocb *iocb, struct iov_iter *from)
 			goto out_unlock;
 		}
 
-		iocb->ki_pos += status;
 		ret += status;
 		endbyte = pos + status - 1;
 		ret2 = filemap_write_and_wait_range(inode->i_mapping, pos,