ksmbd: use goto instead of duplicating the resoure cleanup in ksmbd_open_fd
authorNamjae Jeon <namjae.jeon@samsung.com>
Fri, 18 Jun 2021 01:29:56 +0000 (10:29 +0900)
committerNamjae Jeon <namjae.jeon@samsung.com>
Tue, 22 Jun 2021 07:11:34 +0000 (16:11 +0900)
Use goto instead of duplicating the resoure cleanup in ksmbd_open_fd.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifsd/vfs_cache.c

index 3f18018..71a1112 100644 (file)
@@ -559,19 +559,22 @@ struct ksmbd_file *ksmbd_open_fd(struct ksmbd_work *work, struct file *filp)
        fp->f_ci                = ksmbd_inode_get(fp);
 
        if (!fp->f_ci) {
-               kmem_cache_free(filp_cache, fp);
-               return ERR_PTR(-ENOMEM);
+               ret = -ENOMEM;
+               goto err_out;
        }
 
        ret = __open_id(&work->sess->file_table, fp, OPEN_ID_TYPE_VOLATILE_ID);
        if (ret) {
                ksmbd_inode_put(fp->f_ci);
-               kmem_cache_free(filp_cache, fp);
-               return ERR_PTR(ret);
+               goto err_out;
        }
 
        atomic_inc(&work->conn->stats.open_files_count);
        return fp;
+
+err_out:
+       kmem_cache_free(filp_cache, fp);
+       return ERR_PTR(ret);
 }
 
 static int