From: Amjad Alsharafi <amjadsharafi10@gmail.com>
To: qemu-devel@nongnu.org
Cc: Hanna Reitz <hreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>,
"open list:vvfat" <qemu-block@nongnu.org>,
Amjad Alsharafi <amjadsharafi10@gmail.com>
Subject: [PATCH v6 0/5] vvfat: Fix write bugs for large files and add iotests
Date: Sat, 20 Jul 2024 18:13:29 +0800 [thread overview]
Message-ID: <cover.1721470238.git.amjadsharafi10@gmail.com> (raw)
These patches fix some bugs found when modifying files in vvfat.
First, there was a bug when writing to the cluster 2 or above of a file, it
will copy the cluster before it instead, so, when writing to cluster=2, the
content of cluster=1 will be copied into disk instead in its place.
Another issue was modifying the clusters of a file and adding new
clusters, this showed 2 issues:
- If the new cluster is not immediately after the last cluster, it will
cause issues when reading from this file in the future.
- Generally, the usage of info.file.offset was incorrect, and the
system would crash on abort() when the file is modified and a new
cluster was added.
Also, added some iotests for vvfat, covering the this fix and also
general behavior such as reading, writing, and creating files on the filesystem.
Including tests for reading/writing the first cluster which
would pass even before this patch.
v6:
- small fixes and code improvements when switching between active vfat mappings
- small fixes and code improvements for the fa16.py driver used for iotests
v5:
- Fix a bug in reading non-contiguous clusters in vvfat for more than 2 mappings.
- Added a test for adding more clusters where they are non-contiguous and
result in 3 mappings (for the above fix).
- Split PATCH 2/4 into 2 patches and a better fix for the `abort` issue (now in PATCH 3/5).
- Other fixes and improvements in `fat16.py` module used for iotests.
v4:
Applied some suggestions from Kevin Wolf <kwolf@redhat.com>:
- Fixed code formatting by following the coding style in `scripts/checkpatch.pl`
- Reduced changes related to `iotests` by setting `vvfat` format as non-generic.
- Added another test to cover the fix done in `PATCH 2/4` and `PATCH 3/4` for
handling reading/writing files with non-continuous clusters.
v3:
Added test for creating new files in vvfat.
v2:
Added iotests for `vvfat` driver along with a simple `fat16` module to run the tests.
v1:
https://patchew.org/QEMU/20240327201231.31046-1-amjadsharafi10@gmail.com/
Fix the issue of writing to the middle of the file in vvfat
Amjad Alsharafi (5):
vvfat: Fix bug in writing to middle of file
vvfat: Fix usage of `info.file.offset`
vvfat: Fix wrong checks for cluster mappings invariant
vvfat: Fix reading files with non-continuous clusters
iotests: Add `vvfat` tests
block/vvfat.c | 34 +-
tests/qemu-iotests/check | 2 +-
tests/qemu-iotests/fat16.py | 675 +++++++++++++++++++++++++++++
tests/qemu-iotests/testenv.py | 2 +-
tests/qemu-iotests/tests/vvfat | 458 +++++++++++++++++++
tests/qemu-iotests/tests/vvfat.out | 5 +
6 files changed, 1157 insertions(+), 19 deletions(-)
create mode 100644 tests/qemu-iotests/fat16.py
create mode 100755 tests/qemu-iotests/tests/vvfat
create mode 100755 tests/qemu-iotests/tests/vvfat.out
--
2.45.2
next reply other threads:[~2024-07-20 10:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-20 10:13 Amjad Alsharafi [this message]
2024-07-20 10:13 ` [PATCH v6 1/5] vvfat: Fix bug in writing to middle of file Amjad Alsharafi
2024-07-20 10:13 ` [PATCH v6 2/5] vvfat: Fix usage of `info.file.offset` Amjad Alsharafi
2024-07-20 10:13 ` [PATCH v6 3/5] vvfat: Fix wrong checks for cluster mappings invariant Amjad Alsharafi
2024-07-20 10:13 ` [PATCH v6 4/5] vvfat: Fix reading files with non-continuous clusters Amjad Alsharafi
2024-08-05 10:22 ` Kevin Wolf
2024-08-09 4:35 ` Amjad Alsharafi
2024-07-20 10:13 ` [PATCH v6 5/5] iotests: Add `vvfat` tests Amjad Alsharafi
2024-08-05 10:24 ` [PATCH v6 0/5] vvfat: Fix write bugs for large files and add iotests Kevin Wolf
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=cover.1721470238.git.amjadsharafi10@gmail.com \
--to=amjadsharafi10@gmail.com \
--cc=hreitz@redhat.com \
--cc=kwolf@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).