[PATCH 2/2] dio_writeback_race: align the directio buffer to base page size

Darrick J. Wong
2025-02-19T00:49:33Z

From: Darrick J. Wong <djwong@kernel.org>

There's no need to align the memory buffer for the direcio write to the
file allocation unit size; base page size will do. This fixes the
following error when generic/761 is run against an XFS rt filesystem
with a 28k rtextsize:

QA output created by 761
+failed to allocate aligned memory
+cat: /opt/foobar: No such file or directory
Silence is golden

Cc: <fstests@vger.kernel.org> # v2025.02.16
Fixes: 17fb49493426ad ("fstests: add a generic test to verify direct IO writes with buffer contents change")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
---
src/dio-writeback-race.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/dio-writeback-race.c b/src/dio-writeback-race.c
index 2d3156e5b0974a..cca7d0e3b94cc9 100644
--- a/src/dio-writeback-race.c
+++ b/src/dio-writeback-race.c
@@ -102,7 +102,7 @@ int main (int argc, char *argv[])
fprintf(stderr, "missing argument\n");
goto error;
}
- ret = posix_memalign(&buf, blocksize, blocksize);
+ ret = posix_memalign(&buf, sysconf(_SC_PAGESIZE), blocksize);
if (!buf) {
fprintf(stderr, "failed to allocate aligned memory\n");
exit(EXIT_FAILURE);