From: Richard Jones Date: Thu, 27 May 2010 08:48:22 +0000 (+0100) Subject: New API: fallocate64 (replaces fallocate). X-Git-Tag: 1.3.17~8 X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=commitdiff_plain;h=6b500f1b8e1ac8d28c485a5591c2833b18cc86e2;hp=c1e3cff523d72e8110cbc568a3c280e57c2aabca New API: fallocate64 (replaces fallocate). guestfs_fallocate takes an integer for the length, effectively limiting it to creating 1GB files. This new call takes an int64_t for the length, but is otherwise identical. --- diff --git a/daemon/fallocate.c b/daemon/fallocate.c index 4947430..0c948ff 100644 --- a/daemon/fallocate.c +++ b/daemon/fallocate.c @@ -31,6 +31,17 @@ int do_fallocate (const char *path, int len) { + if (len < 0) { + reply_with_error ("length < 0"); + return -1; + } + + return do_fallocate64 (path, len); +} + +int +do_fallocate64 (const char *path, int64_t len) +{ int fd; CHROOT_IN; diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR index 1f7e0d6..2197544 100644 --- a/src/MAX_PROC_NR +++ b/src/MAX_PROC_NR @@ -1 +1 @@ -251 +252 diff --git a/src/generator.ml b/src/generator.ml index 6db6aeb..96a5847 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -3475,7 +3475,7 @@ The C<-f> option removes the link (C) if it exists already."); "\ This command reads the target of a symbolic link."); - ("fallocate", (RErr, [Pathname "path"; Int "len"]), 169, [], + ("fallocate", (RErr, [Pathname "path"; Int "len"]), 169, [DeprecatedBy "fallocate64"], [InitBasicFS, Always, TestOutputStruct ( [["fallocate"; "/a"; "1000000"]; ["stat"; "/a"]], [CompareWithInt ("size", 1_000_000)])], @@ -4722,6 +4722,28 @@ returned list. See also C and L."); + ("fallocate64", (RErr, [Pathname "path"; Int64 "len"]), 252, [], + [InitBasicFS, Always, TestOutputStruct ( + [["fallocate64"; "/a"; "1000000"]; + ["stat"; "/a"]], [CompareWithInt ("size", 1_000_000)])], + "preallocate a file in the guest filesystem", + "\ +This command preallocates a file (containing zero bytes) named +C of size C bytes. If the file exists already, it +is overwritten. + +Note that this call allocates disk blocks for the file. +To create a sparse file use C instead. + +The deprecated call C does the same, +but owing to an oversight it only allowed 30 bit lengths +to be specified, effectively limiting the maximum size +of files created through that call to 1GB. + +Do not confuse this with the guestfish-specific +C and C commands which create +a file in the host and attach it as a device."); + ] let all_functions = non_daemon_functions @ daemon_functions