When btrfs-image failed to create an image, the invalid output file
had better be deleted to prevent being used mistakenly in the future.
Signed-off-by: Gui Hecheng <guihc.fnst@xxxxxxxxxxxxxx>
---
changelog
v1->v2: use a new local variable to avoid return value overwritten
---
btrfs-image.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/btrfs-image.c b/btrfs-image.c
index c18dff1..321c331 100644
--- a/btrfs-image.c
+++ b/btrfs-image.c
@@ -2604,8 +2604,18 @@ int main(int argc, char *argv[])
out:
if (out == stdout)
fflush(out);
- else
+ else {
fclose(out);
+ if (ret && create) {
+ int unlink_ret;
+
+ unlink_ret = unlink(target);
+ if (unlink_ret)
+ fprintf(stderr,
+ "unlink output file failed : %s\n",
+ strerror(errno));
+ }
+ }
return !!ret;
}
--
1.8.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html