On Wed, 17 Mar 2021, Christoph Hellwig wrote: > No, it is everything but useless. It is not needed during device > creation, but that is something that the GENHD_FL_UP check should catch. > > You should probably audit the device mapper code why it sets the initial > capacity when the gendisk is up already, as that can cause all kinds of > problems. If the setting of the initial capacity after add_disk is > indeed intentional you can switch to set_capacity(), but you should > probably document the rationale in a detailed comment. BTW. the loop device has the same problem as device mapper - it also prints "loop0: detected capacity change from 0 to 2097152" when it is being activated. Would you accept this patch? Or do you think that we should change device mapper and the loopback driver to call "set_capacity" on the initial device creation? Mikulas --- block/genhd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) Index: linux-2.6/block/genhd.c =================================================================== --- linux-2.6.orig/block/genhd.c 2021-03-17 16:26:11.000000000 +0100 +++ linux-2.6/block/genhd.c 2021-03-17 16:26:42.000000000 +0100 @@ -71,16 +71,16 @@ bool set_capacity_and_notify(struct gend if (size == capacity || (disk->flags & (GENHD_FL_UP | GENHD_FL_HIDDEN)) != GENHD_FL_UP) return false; - - pr_info("%s: detected capacity change from %lld to %lld\n", - disk->disk_name, capacity, size); - /* * Historically we did not send a uevent for changes to/from an empty * device. */ if (!capacity || !size) return false; + + pr_info("%s: detected capacity change from %lld to %lld\n", + disk->disk_name, capacity, size); + kobject_uevent_env(&disk_to_dev(disk)->kobj, KOBJ_CHANGE, envp); return true; } -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel