Commit 0375003d authored by Max Reitz's avatar Max Reitz Committed by Kevin Wolf
Browse files

gluster: Move glfs_close() to create's clean-up



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: default avatarMax Reitz <mreitz@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 0e448a05
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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) {
out:
    if (fd) {
        if (glfs_close(fd) != 0 && ret == 0) {
            ret = -errno;
        }
out:
    }
    qapi_free_BlockdevOptionsGluster(gconf);
    glfs_clear_preopened(glfs);
    return ret;