From 8e2153bf14b7de0cc07e29202c4a4570a3b98d60 Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Wed, 26 Aug 2009 18:38:59 -0500 Subject: [PATCH] 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 --- io/pwrite.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; } -- 2.47.2