From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Christoph Hellwig <hch@lst.de>, djwong@kernel.org
Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
kernel test robot <oliver.sang@intel.com>,
Cyril Hrubis <chrubis@suse.cz>
Subject: Re: [PATCH 1/2] iomap: fix a regression for partial write errors
Date: Mon, 17 Jul 2023 10:42:31 +0530 [thread overview]
Message-ID: <87ttu3nmtc.fsf@doe.com> (raw)
In-Reply-To: <20230714085124.548920-1-hch@lst.de>
Christoph Hellwig <hch@lst.de> writes:
> When write* wrote some data it should return the amount of written data
> and not the error code that caused it to stop. Fix a recent regression
> in iomap_file_buffered_write that caused it to return the errno instead.
>
Agreed. Reviewed the change and it looks right to me.
Feel free to add -
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> Fixes: 219580eea1ee ("iomap: update ki_pos in iomap_file_buffered_write")
> Reported-by: kernel test robot <oliver.sang@intel.com>
> Reported-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
In case anyone wanted to see before and after test failures output of
./runltp -f syscalls -s writev07 -d /mnt1/test
<without this patch>
tst_test.c:1558: TINFO: Timeout per run is 0h 00m 30s
writev07.c:50: TINFO: starting test with initial file offset: 0
writev07.c:73: TINFO: got EFAULT
writev07.c:78: TFAIL: file was written to
writev07.c:84: TPASS: offset stayed unchanged
writev07.c:50: TINFO: starting test with initial file offset: 65
writev07.c:73: TINFO: got EFAULT
writev07.c:78: TFAIL: file was written to
writev07.c:84: TPASS: offset stayed unchanged
writev07.c:50: TINFO: starting test with initial file offset: 4096
writev07.c:73: TINFO: got EFAULT
writev07.c:80: TPASS: file stayed untouched
writev07.c:84: TPASS: offset stayed unchanged
writev07.c:50: TINFO: starting test with initial file offset: 4097
writev07.c:73: TINFO: got EFAULT
writev07.c:80: TPASS: file stayed untouched
writev07.c:84: TPASS: offset stayed unchanged
Summary:
passed 6
failed 2
broken 0
skipped 0
warnings 0
<with this patch>
tst_test.c:1558: TINFO: Timeout per run is 0h 00m 30s
writev07.c:50: TINFO: starting test with initial file offset: 0
writev07.c:94: TINFO: writev() has written 64 bytes
writev07.c:105: TPASS: file has expected content
writev07.c:116: TPASS: offset at 64 as expected
writev07.c:50: TINFO: starting test with initial file offset: 65
writev07.c:94: TINFO: writev() has written 64 bytes
writev07.c:105: TPASS: file has expected content
writev07.c:116: TPASS: offset at 129 as expected
writev07.c:50: TINFO: starting test with initial file offset: 4096
writev07.c:94: TINFO: writev() has written 64 bytes
writev07.c:105: TPASS: file has expected content
writev07.c:116: TPASS: offset at 4160 as expected
writev07.c:50: TINFO: starting test with initial file offset: 4097
writev07.c:94: TINFO: writev() has written 64 bytes
writev07.c:105: TPASS: file has expected content
writev07.c:116: TPASS: offset at 4161 as expected
Summary:
passed 8
failed 0
broken 0
skipped 0
warnings 0
> fs/iomap/buffered-io.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index adb92cdb24b009..7cc9f7274883a5 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -872,7 +872,7 @@ iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *i,
> while ((ret = iomap_iter(&iter, ops)) > 0)
> iter.processed = iomap_write_iter(&iter, i);
>
> - if (unlikely(ret < 0))
> + if (unlikely(iter.pos == iocb->ki_pos))
> return ret;
> ret = iter.pos - iocb->ki_pos;
> iocb->ki_pos += ret;
> --
> 2.39.2
-ritesh
prev parent reply other threads:[~2023-07-17 5:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-14 8:51 [PATCH 1/2] iomap: fix a regression for partial write errors Christoph Hellwig
2023-07-14 8:51 ` [PATCH 2/2] iomap: micro optimize the ki_pos assignment in iomap_file_buffered_write Christoph Hellwig
2023-07-14 14:52 ` Darrick J. Wong
2023-07-17 5:14 ` Ritesh Harjani
2023-07-14 14:51 ` [PATCH 1/2] iomap: fix a regression for partial write errors Darrick J. Wong
2023-07-17 5:12 ` Ritesh Harjani [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ttu3nmtc.fsf@doe.com \
--to=ritesh.list@gmail.com \
--cc=chrubis@suse.cz \
--cc=djwong@kernel.org \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=oliver.sang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).