Message ID | 20170411192403.GA26778@amazon.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Apr 11, 2017 at 12:24:09PM -0700, Marc Olson wrote: > When a blkfront device is resized from dom0, emit a KOBJ_CHANGE uevent to > notify the guest about the change. This allows for custom udev rules, such > as automatically resizing a filesystem, when an event occurs. Looks pretty reasonable. Could you confirm what the udevadm --monitor --kernel --udev emits when this happens? Thanks! > > Signed-off-by: Marc Olson <marcolso@amazon.com> > --- > drivers/block/xen-blkfront.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c > index 2fee2ee..66abf9c 100644 > --- a/drivers/block/xen-blkfront.c > +++ b/drivers/block/xen-blkfront.c > @@ -1996,6 +1996,7 @@ static void blkfront_connect(struct blkfront_info *info) > unsigned long sector_size; > unsigned int physical_sector_size; > unsigned int binfo; > + char *envp[] = { "RESIZE=1", NULL }; > int err; > > switch (info->connected) { > @@ -2012,6 +2013,8 @@ static void blkfront_connect(struct blkfront_info *info) > sectors); > set_capacity(info->gd, sectors); > revalidate_disk(info->gd); > + kobject_uevent_env(&disk_to_dev(info->gd)->kobj, > + KOBJ_CHANGE, envp); > > return; > case BLKIF_STATE_SUSPENDED: > -- > 2.7.4 >
On Tue, Apr 11, 2017 at 04:04:59PM -0400, Konrad Rzeszutek Wilk wrote: > On Tue, Apr 11, 2017 at 12:24:09PM -0700, Marc Olson wrote: > > When a blkfront device is resized from dom0, emit a KOBJ_CHANGE uevent to > > notify the guest about the change. This allows for custom udev rules, such > > as automatically resizing a filesystem, when an event occurs. > > Looks pretty reasonable. > > Could you confirm what the udevadm --monitor --kernel --udev emits when this happens? Relevant output: KERNEL[577.206230] change /devices/vbd-51728/block/xvdb (block) UDEV [577.226218] change /devices/vbd-51728/block/xvdb (block) Of course, this is missing without the patch. /marc > > Thanks! > > > > > Signed-off-by: Marc Olson <marcolso@amazon.com> > > --- > > drivers/block/xen-blkfront.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c > > index 2fee2ee..66abf9c 100644 > > --- a/drivers/block/xen-blkfront.c > > +++ b/drivers/block/xen-blkfront.c > > @@ -1996,6 +1996,7 @@ static void blkfront_connect(struct blkfront_info *info) > > unsigned long sector_size; > > unsigned int physical_sector_size; > > unsigned int binfo; > > + char *envp[] = { "RESIZE=1", NULL }; > > int err; > > > > switch (info->connected) { > > @@ -2012,6 +2013,8 @@ static void blkfront_connect(struct blkfront_info *info) > > sectors); > > set_capacity(info->gd, sectors); > > revalidate_disk(info->gd); > > + kobject_uevent_env(&disk_to_dev(info->gd)->kobj, > > + KOBJ_CHANGE, envp); > > > > return; > > case BLKIF_STATE_SUSPENDED: > > -- > > 2.7.4 > > >
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 2fee2ee..66abf9c 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -1996,6 +1996,7 @@ static void blkfront_connect(struct blkfront_info *info) unsigned long sector_size; unsigned int physical_sector_size; unsigned int binfo; + char *envp[] = { "RESIZE=1", NULL }; int err; switch (info->connected) { @@ -2012,6 +2013,8 @@ static void blkfront_connect(struct blkfront_info *info) sectors); set_capacity(info->gd, sectors); revalidate_disk(info->gd); + kobject_uevent_env(&disk_to_dev(info->gd)->kobj, + KOBJ_CHANGE, envp); return; case BLKIF_STATE_SUSPENDED:
When a blkfront device is resized from dom0, emit a KOBJ_CHANGE uevent to notify the guest about the change. This allows for custom udev rules, such as automatically resizing a filesystem, when an event occurs. Signed-off-by: Marc Olson <marcolso@amazon.com> --- drivers/block/xen-blkfront.c | 3 +++ 1 file changed, 3 insertions(+)