Re: [PATCH] generic: test zero-byte writes to new file

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]




On 2/21/25 22:17, Darrick J. Wong wrote:
On Fri, Feb 21, 2025 at 10:44:09AM +0530, Nirjhar Roy (IBM) wrote:
On Thu, 2025-02-13 at 12:06 -0600, Eric Sandeen wrote:
A bug was recently fixed in exfat where attempting to do a zero-byte
write would yield -EFAULT; test for that here.

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---

diff --git a/tests/generic/761 b/tests/generic/761
new file mode 100755
index 00000000..e933eb83
--- /dev/null
+++ b/tests/generic/761
@@ -0,0 +1,28 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2025 Red Hat, Inc.  All Rights Reserved.
+#
+# FS QA Test 761
+#
+# test zero-byte writes
+#
+# exfat had a regression where a zero-byte write to a file would
+# yield -EfAULT. Should work on all filesystems - write should
+# succeed and the zero-byte file should be created.
+#
+. ./common/preamble
+_begin_fstest auto quick
+
+[ "$FSTYP" = "exfat" ] && _fixed_by_kernel_commit dda0407a2026 \
+	"exfat: short-circuit zero-byte writes in
exfat_file_write_iter"
+
+# Modify as appropriate.
+_require_test
+
+rm -f $TEST_DIR/testfile.$seq
+$XFS_IO_PROG -f -c "pwrite 0 0" $TEST_DIR/testfile.$seq
+test -f $TEST_DIR/testfile.$seq || _fail "file not created"
Minor: Maybe just remove the test file that is created above (since we
are using the TEST_DIR)and not leave any test artifacts? Or, maybe use
the scratch device?
Agreed, the _cleanup should remove the testfile.

Using the scratch device (== additional runtime for mkfs) is overkill
since this test creates a single file but writes nothing to it.

Yes, makes sense.

--NR


--D

--NR
+
+# success, all done
+status=0
+exit
diff --git a/tests/generic/761.out b/tests/generic/761.out
new file mode 100644
index 00000000..72ebba4c
--- /dev/null
+++ b/tests/generic/761.out
@@ -0,0 +1,2 @@
+QA output created by 761
+Silence is golden


--
Nirjhar Roy
Linux Kernel Developer
IBM, Bangalore





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux