From: Lukas Herbolt Date: Wed, 1 Oct 2025 11:54:50 +0000 (+0200) Subject: fallocate: allow O_CREATE if mode is FALLOC_FL_WRITE_ZEROES X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3059771445a81446544bbb08ba2dfeb4506ba598;p=thirdparty%2Futil-linux.git fallocate: allow O_CREATE if mode is FALLOC_FL_WRITE_ZEROES With the new flag we can create the ZEROED allcoated files directly and not in the two steps. Removing FALLOC_FL_WRITE_ZEROES from the flags of not using O_CREATE on open(). Signed-off-by: Lukas Herbolt --- diff --git a/sys-utils/fallocate.c b/sys-utils/fallocate.c index f06009483..686e4925e 100644 --- a/sys-utils/fallocate.c +++ b/sys-utils/fallocate.c @@ -408,7 +408,7 @@ int main(int argc, char **argv) /* O_CREAT makes sense only for the default fallocate(2) behavior * when mode is no specified and new space is allocated */ - fd = open(filename, O_RDWR | (!dig && !mode ? O_CREAT : 0), + fd = open(filename, O_RDWR | (!dig && !(mode & ~FALLOC_FL_WRITE_ZEROES) ? O_CREAT : 0), S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); if (fd < 0) err(EXIT_FAILURE, _("cannot open %s"), filename);