[Qemu-devel] [PATCH 1/7] gluster: Move glfs_close() to create's clean-up

Max Reitz posted 7 patches 7 years, 12 months ago
[Qemu-devel] [PATCH 1/7] gluster: Move glfs_close() to create's clean-up
Posted by Max Reitz 7 years, 12 months ago
glfs_close() is a classical clean-up operation, as can be seen by the
fact that it is executed even if the truncation before it failed.
Also, moving it to clean-up makes it more clear that if it fails, we do
not want it to overwrite the current ret value if that signifies an
error already.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 block/gluster.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/block/gluster.c b/block/gluster.c
index d8decc41ad..7fab2dfa12 100644
--- a/block/gluster.c
+++ b/block/gluster.c
@@ -970,7 +970,7 @@ static int qemu_gluster_create(const char *filename,
 {
     BlockdevOptionsGluster *gconf;
     struct glfs *glfs;
-    struct glfs_fd *fd;
+    struct glfs_fd *fd = NULL;
     int ret = 0;
     PreallocMode prealloc;
     int64_t total_size = 0;
@@ -1054,10 +1054,12 @@ static int qemu_gluster_create(const char *filename,
         break;
     }
 
-    if (glfs_close(fd) != 0) {
-        ret = -errno;
-    }
 out:
+    if (fd) {
+        if (glfs_close(fd) != 0 && ret == 0) {
+            ret = -errno;
+        }
+    }
     qapi_free_BlockdevOptionsGluster(gconf);
     glfs_clear_preopened(glfs);
     return ret;
-- 
2.14.3


Re: [Qemu-devel] [PATCH 1/7] gluster: Move glfs_close() to create's clean-up
Posted by Eric Blake 7 years, 12 months ago
On 02/13/2018 07:03 AM, Max Reitz wrote:
> glfs_close() is a classical clean-up operation, as can be seen by the
> fact that it is executed even if the truncation before it failed.
> Also, moving it to clean-up makes it more clear that if it fails, we do
> not want it to overwrite the current ret value if that signifies an
> error already.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>   block/gluster.c | 10 ++++++----
>   1 file changed, 6 insertions(+), 4 deletions(-)
> 

Reviewed-by: Eric Blake <eblake@redhat.com>


-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org