projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
dbbcf21
)
drbd: Fix double free problem in drbd_create_device
author
Wu Bo
<wubo40@huawei.com>
Thu, 4 Nov 2021 08:07:09 +0000
(16:07 +0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Tue, 12 Jul 2022 14:35:00 +0000
(16:35 +0200)
[ Upstream commit
27548088ac628109f70eb0b1eb521d035844dba8
]
In drbd_create_device(), the 'out_no_io_page' lable has called
blk_cleanup_disk() when return failed.
So remove the 'out_cleanup_disk' lable to avoid double free the
disk pointer.
Fixes: e92ab4eda516 ("drbd: add error handling support for add_disk()")
Signed-off-by: Wu Bo <wubo40@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link:
https://lore.kernel.org/r/1636013229-26309-1-git-send-email-wubo40@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/drbd/drbd_main.c
patch
|
blob
|
history
diff --git
a/drivers/block/drbd/drbd_main.c
b/drivers/block/drbd/drbd_main.c
index ae6a136d278e8caf46d134d3eb7cea7d5d2f7a33..b91d2a9dc2382601d34b5c851b600984ff0ff326 100644
(file)
--- a/
drivers/block/drbd/drbd_main.c
+++ b/
drivers/block/drbd/drbd_main.c
@@
-2800,7
+2800,7
@@
enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
err = add_disk(disk);
if (err)
- goto out_
cleanup_disk
;
+ goto out_
idr_remove_vol
;
/* inherit the connection state */
device->state.conn = first_connection(resource)->cstate;
@@
-2814,8
+2814,6
@@
enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
drbd_debugfs_device_add(device);
return NO_ERROR;
-out_cleanup_disk:
- blk_cleanup_disk(disk);
out_idr_remove_vol:
idr_remove(&connection->peer_devices, vnr);
out_idr_remove_from_resource: