From: Karel Zak Date: Thu, 26 Jun 2014 12:45:02 +0000 (+0200) Subject: fallocate: use O_CREAT only for the default behavior X-Git-Tag: v2.25-rc2~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=575718a04aa0c053875041dc387e360f2dcaa70d;p=thirdparty%2Futil-linux.git fallocate: use O_CREAT only for the default behavior Reported-by: Bernhard Voelker Signed-off-by: Karel Zak --- diff --git a/sys-utils/fallocate.c b/sys-utils/fallocate.c index 4e8cef2633..93fd3b48e2 100644 --- a/sys-utils/fallocate.c +++ b/sys-utils/fallocate.c @@ -364,7 +364,9 @@ int main(int argc, char **argv) if (offset < 0) errx(EXIT_FAILURE, _("invalid offset value specified")); - fd = open(filename, O_RDWR|O_CREAT, 0644); + /* 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), 0644); if (fd < 0) err(EXIT_FAILURE, _("cannot open %s"), filename);