[PATCH] fallocate: allow O_CREATE if mode is FALLOC_FL_WRITE_ZEROES
Lukas Herbolt <[email protected]> Wed, 1 Oct 2025 13:54:50 +0200
| Newsgroups | org.kernel.vger.util-linux |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- sys-utils/fallocate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); -- 2.51.0