> > And one final question: > > > > dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 1); > > disk_force_media_change(lo->lo_disk); > > /* more stuff */ > > dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0); > > > > What exactly does that achieve? Does it just delay the delivery of the > > uevent after the disk sequence number was changed in > > disk_force_media_change()? Because it doesn't seem to actually prevent > > uevent generation. > > Well, if you grep for dev_get_uevent_suppress() you'll notice there is > exactly *one* place looking at it - the generation of ADD event when adding > a partition bdev. I'm not sure what's the rationale behind this > functionality. I looked at dev_set_uevent_suppress() before and what it does is that it fully prevents the generation of uevents for the kobject. It doesn't just hold them back like the comments "uncork" in loop_change_fd() and loop_configure() suggest: static inline void dev_set_uevent_suppress(struct device *dev, int val) { dev->kobj.uevent_suppress = val; } and then int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, char *envp_ext[]) { [...] /* skip the event, if uevent_suppress is set*/ if (kobj->uevent_suppress) { pr_debug("kobject: '%s' (%p): %s: uevent_suppress " "caused the event to drop!\n", kobject_name(kobj), kobj, __func__); return 0; } So commit 498ef5c777d9 ("loop: suppress uevents while reconfiguring the device") tried to fix a problem where uevents were generated for LOOP_SET_FD before LOOP_SET_STATUS* was called. That broke LOOP_CONFIGURE because LOOP_CONFIGURE is supposed to be LOOP_SET_FD + LOOP_SET_STATUS in one shot. Then commit bb430b694226 ("loop: LOOP_CONFIGURE: send uevents for partitions") fixed that by moving loop_reread_partitions() out of the uevent suppression. No you get uevents if you trigger a partition rescan but only if there are actually partitions. What you never get however is a media change event even though we do increment the disk sequence number and attach an image to the loop device. This seems problematic because we leave userspace unable to listen for attaching images to a loop device. Shouldn't we regenerate the media change event after we're done setting up the device and before the partition rescan for LOOP_CONFIGURE?