mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
nbd: disallow NBD_SET_SOCK on an active device
We cannot add a socket to an already running nbd device, the reconfigure
for netlink can only active an inactive socket. But for ioctl path, we can
call NBD_SET_SOCK after NBD_DO_IT, reject this using nbd->pid which has
been setted when NBD_DO_IT. Besides, it is the root cause for commit
b98e762e3d ("nbd: freeze the queue while we're adding connections").
Reviewed-by: Yu Kuai <yukuai@fygo.io>
Signed-off-by: Yang Erkun <yangerkun@huawei.com>
Link: https://patch.msgid.link/20260805122930.57647-3-yangerkun@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
fe247030f1
commit
04d8fb23e5
|
|
@ -1278,6 +1278,13 @@ static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg,
|
|||
/* Arg will be cast to int, check it to avoid overflow */
|
||||
if (arg > INT_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
if (nbd->pid) {
|
||||
dev_err(disk_to_dev(nbd->disk),
|
||||
"Cannot add socket to a running device\n");
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
sock = nbd_get_socket(nbd, arg, &err);
|
||||
if (!sock)
|
||||
return err;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user