vfs_gpfs: slightly simplify connect()
authorVolker Lendecke <vl@samba.org>
Tue, 14 May 2013 13:43:10 +0000 (15:43 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 14 May 2013 16:11:29 +0000 (18:11 +0200)
DISCONNECT can be arbitrarily complex, TALLOC_FREE of a simple struct
is easier.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Christian Ambach <ambi@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Tue May 14 18:11:29 CEST 2013 on sn-devel-104

source3/modules/vfs_gpfs.c

index 7f00eac5f68f7832a8bfc7410b7878d75837d634..13061c8c3591248accaec7c2c5fcdea29ce3d9bb 100644 (file)
@@ -1691,19 +1691,19 @@ static int vfs_gpfs_connect(struct vfs_handle_struct *handle,
 
        smbd_gpfs_lib_init();
 
-       ret = SMB_VFS_NEXT_CONNECT(handle, service, user);
-
-       if (ret < 0) {
-               return ret;
-       }
-
        config = talloc_zero(handle->conn, struct gpfs_config_data);
        if (!config) {
-               SMB_VFS_NEXT_DISCONNECT(handle);
                DEBUG(0, ("talloc_zero() failed\n"));
+               errno = ENOMEM;
                return -1;
        }
 
+       ret = SMB_VFS_NEXT_CONNECT(handle, service, user);
+       if (ret < 0) {
+               TALLOC_FREE(config);
+               return ret;
+       }
+
        config->sharemodes = lp_parm_bool(SNUM(handle->conn), "gpfs",
                                        "sharemodes", true);