When try_module_get() fails in the nvme_dev_open() it returns without
releasing the ctrl reference which was taken earlier.
Put the ctrl reference which is taken before calling the
try_module_get() in the error return code path.
Fixes: 52a3974feb1a "nvme-core: get/put ctrl and transport module in nvme_dev_open/release()"
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
        }
 
        nvme_get_ctrl(ctrl);
-       if (!try_module_get(ctrl->ops->module))
+       if (!try_module_get(ctrl->ops->module)) {
+               nvme_put_ctrl(ctrl);
                return -EINVAL;
+       }
 
        file->private_data = ctrl;
        return 0;