From: Eric Sandeen Date: Wed, 26 Aug 2009 23:38:59 +0000 (-0500) Subject: xfs_io: actually issue 0 size writes X-Git-Tag: v3.0.3~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8e2153bf14b7de0cc07e29202c4a4570a3b98d60;p=thirdparty%2Fxfsprogs-dev.git xfs_io: actually issue 0 size writes While testing some stuff in generic_write_checks() in the kernel I realized that you can't actually use xfs_io to send a 0-byte write in. This is actually a condition worth testing: If count is zero and fd refers to a regular file, then write() may return a failure status if one of the errors below is detected. If no errors are detected, 0 will be returned without causing any other effect. So fix that up. Signed-off-by: Eric Sandeen Reviewed-by: Felix Blyakher --- diff --git a/io/pwrite.c b/io/pwrite.c index 54c3f7820..26a7850de 100644 --- a/io/pwrite.c +++ b/io/pwrite.c @@ -163,7 +163,7 @@ write_buffer( int ops = 0; *total = 0; - while (count > 0) { + while (count >= 0) { if (fd > 0) { /* input file given, read buffer first */ if (read_buffer(fd, skip + *total, bs, &bar, 0, 1) < 0) break; @@ -182,6 +182,8 @@ write_buffer( break; offset += bytes; count -= bytes; + if (count == 0) + break; } return ops; }