From: Kevin Wolf <kwolf@redhat.com>
To: Amjad Alsharafi <amjadsharafi10@gmail.com>
Cc: qemu-devel@nongnu.org, Hanna Reitz <hreitz@redhat.com>,
"open list:vvfat" <qemu-block@nongnu.org>
Subject: Re: [PATCH v3 1/6] vvfat: Fix bug in writing to middle of file
Date: Fri, 31 May 2024 18:15:35 +0200 [thread overview]
Message-ID: <Zln3p6x_pjoyIHYq@redhat.com> (raw)
In-Reply-To: <2871281d8ea41fb4d7ef8f9beeaba017a1717019.1716717181.git.amjadsharafi10@gmail.com>
Am 26.05.2024 um 11:56 hat Amjad Alsharafi geschrieben:
> Before this commit, the behavior when calling `commit_one_file` for
> example with `offset=0x2000` (second cluster), what will happen is that
> we won't fetch the next cluster from the fat, and instead use the first
> cluster for the read operation.
>
> This is due to off-by-one error here, where `i=0x2000 !< offset=0x2000`,
> thus not fetching the next cluster.
>
> Signed-off-by: Amjad Alsharafi <amjadsharafi10@gmail.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Tested-by: Kevin Wolf <kwolf@redhat.com>
> diff --git a/block/vvfat.c b/block/vvfat.c
> index 9d050ba3ae..ab342f0743 100644
> --- a/block/vvfat.c
> +++ b/block/vvfat.c
> @@ -2525,7 +2525,7 @@ commit_one_file(BDRVVVFATState* s, int dir_index, uint32_t offset)
> return -1;
> }
>
> - for (i = s->cluster_size; i < offset; i += s->cluster_size)
> + for (i = s->cluster_size; i <= offset; i += s->cluster_size)
> c = modified_fat_get(s, c);
While your change results in the correct behaviour, I think I would
prefer the code to be changed like this so that at the start of each
loop iteration, 'i' always refers to the offset that matches 'c':
for (i = 0; i < offset; i += s->cluster_size) {
c = modified_fat_get(s, c);
}
I'm also adding braces here to make the code conform with the QEMU
coding style. You can use scripts/checkpatch.pl to make sure that all
code you add has the correct style. Much of the vvfat code predates the
coding style, so you'll often have to change style when you touch a
line. (Which is good, because it slowly fixes the existing mess.)
You can keep my Reviewed/Tested-by if you change this.
Kevin
next prev parent reply other threads:[~2024-05-31 16:16 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-26 9:56 [PATCH v3 0/6] vvfat: Fix write bugs for large files and add iotests Amjad Alsharafi
2024-05-26 9:56 ` [PATCH v3 1/6] vvfat: Fix bug in writing to middle of file Amjad Alsharafi
2024-05-31 16:15 ` Kevin Wolf [this message]
2024-05-26 9:56 ` [PATCH v3 2/6] vvfat: Fix usage of `info.file.offset` Amjad Alsharafi
2024-05-26 9:56 ` [PATCH v3 3/6] vvfat: Fix reading files with non-continuous clusters Amjad Alsharafi
2024-05-26 9:56 ` [PATCH v3 4/6] iotests: Add `vvfat` tests Amjad Alsharafi
2024-05-26 9:56 ` [PATCH v3 5/6] iotests: Filter out `vvfat` fmt from failing tests Amjad Alsharafi
2024-05-31 17:29 ` Kevin Wolf
2024-05-26 9:56 ` [PATCH v3 6/6] iotests: Add `create_file` test for `vvfat` driver Amjad Alsharafi
2024-05-31 17:22 ` [PATCH v3 0/6] vvfat: Fix write bugs for large files and add iotests Kevin Wolf
2024-06-05 0:38 ` Amjad Alsharafi
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=Zln3p6x_pjoyIHYq@redhat.com \
--to=kwolf@redhat.com \
--cc=amjadsharafi10@gmail.com \
--cc=hreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/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).