From f217aa4667ba59bcf155b3a3aaabbbbbd28b3c72 Mon Sep 17 00:00:00 2001 From: Dariusz Stojaczyk Date: Fri, 22 Dec 2017 12:01:06 +0100 Subject: [PATCH] bdev/virtio: don't allow registering the same target twice Change-Id: I0c0b6cfded7fa2450c652c477ab8c1d88fc6209f Signed-off-by: Dariusz Stojaczyk Reviewed-on: https://review.gerrithub.io/392775 Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System --- lib/bdev/virtio/bdev_virtio.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/bdev/virtio/bdev_virtio.c b/lib/bdev/virtio/bdev_virtio.c index b96c4e46f..103dd318f 100644 --- a/lib/bdev/virtio/bdev_virtio.c +++ b/lib/bdev/virtio/bdev_virtio.c @@ -1187,6 +1187,13 @@ virtio_scsi_dev_add_tgt(struct virtio_scsi_dev *svdev, struct virtio_scsi_scan_i struct spdk_bdev *bdev; int rc; + TAILQ_FOREACH(disk, &svdev->luns, link) { + if (disk->info.target == info->target) { + /* Target is already attached and param change is not supported */ + return 0; + } + } + disk = calloc(1, sizeof(*disk)); if (disk == NULL) { SPDK_ERRLOG("could not allocate disk\n");