[dm-devel] [PATCH] block: remove the "detected capacity change" message

Mikulas Patocka mpatocka at redhat.com
Wed Mar 17 15:34:39 UTC 2021



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;
 }




More information about the dm-devel mailing list