diff --git a/fs/block_dev.c b/fs/block_dev.c index 22d3a0f5152d145f3f795c7524ec8fcd3bf7ff4f..1c56cddcaa3d02e6d00cd34b5244357595bb4c59 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1264,6 +1264,9 @@ int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk) struct bd_holder_disk *holder; int ret = 0; + if (bdev->bd_disk == disk) + return -EINVAL; + /* * bdev could be deleted beneath us which would implicitly destroy * the holder directory. Hold on to it.