From: Bruce Momjian Date: Wed, 12 Feb 2014 20:38:14 +0000 (-0500) Subject: pg_test_fsync: add C comment about direct I/O and write size failure X-Git-Tag: REL9_4_BETA1~500 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f9bb944cd879949cf454b941f2b8fa7b00fcc1e4;p=postgresql pg_test_fsync: add C comment about direct I/O and write size failure Report from Marti Raudsepp --- diff --git a/contrib/pg_test_fsync/pg_test_fsync.c b/contrib/pg_test_fsync/pg_test_fsync.c index 669c4190d3..682821a8d7 100644 --- a/contrib/pg_test_fsync/pg_test_fsync.c +++ b/contrib/pg_test_fsync/pg_test_fsync.c @@ -369,6 +369,12 @@ test_sync(int writes_per_op) { for (writes = 0; writes < writes_per_op; writes++) if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) + /* + * This can generate write failures if the filesystem + * has a large block size, e.g. 4k, and there is no + * support for O_DIRECT writes smaller than the + * file system block size, e.g. XFS. + */ die("write failed"); if (lseek(tmpfile, 0, SEEK_SET) == -1) die("seek failed");