Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Ubuntu Kernel Team (http://www.linux-archive.org/ubuntu-kernel-team/)
-   -   Fix loop device notificaitons. (http://www.linux-archive.org/ubuntu-kernel-team/622698-fix-loop-device-notificaitons.html)

Ayan George 01-18-2012 02:46 PM

Fix loop device notificaitons.
 
This is a multi-part message in MIME format.
SRU Justification:

Impact: The loop device does not emit a change uevent when autoreleasing
a device. Programs that depend on uevents (like gvfs and ultimately
Nautilus) never notice when loop devices are unmounted.

Bug-Link: https://bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/548546

Fix: Apply 8a9c594422ecad912d6470888acdee9a1236ad68 from linux mainline
-- Pass a valid bdev pointer to loop_clr_fd() instead of NULL so that
it will emit the uevent.

The patch is very small and applies cleanly to ubuntu-oneiric.

Testcase:

(1) In a terminal, start udevadm in monitor mode:

$ udevadm monitor

(2) In another terminal, mount an ISO image using the loopback device:

$ sudo mount -o loop -t iso9660 your_image.iso /mnt

(3) Notice the change uevents that udevadm reports.

(4) Unmount image:

$ sudo umount /mnt

(5) Note that udevadm does not report any changes. With the patch
applied, you will see the kernel noticiations.

Herton Ronaldo Krzesinski 01-19-2012 12:15 PM

Fix loop device notificaitons.
 
On Wed, Jan 18, 2012 at 10:46:57AM -0500, Ayan George wrote:
>
> SRU Justification:
>
> Impact: The loop device does not emit a change uevent when autoreleasing
> a device. Programs that depend on uevents (like gvfs and ultimately
> Nautilus) never notice when loop devices are unmounted.
>
> Bug-Link: https://bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/548546
>
> Fix: Apply 8a9c594422ecad912d6470888acdee9a1236ad68 from linux mainline
> -- Pass a valid bdev pointer to loop_clr_fd() instead of NULL so that
> it will emit the uevent.
>
> The patch is very small and applies cleanly to ubuntu-oneiric.
>
> Testcase:
>
> (1) In a terminal, start udevadm in monitor mode:
>
> $ udevadm monitor
>
> (2) In another terminal, mount an ISO image using the loopback device:
>
> $ sudo mount -o loop -t iso9660 your_image.iso /mnt
>
> (3) Notice the change uevents that udevadm reports.
>
> (4) Unmount image:
>
> $ sudo umount /mnt
>
> (5) Note that udevadm does not report any changes. With the patch
> applied, you will see the kernel noticiations.
>
>

> From 8a9c594422ecad912d6470888acdee9a1236ad68 Mon Sep 17 00:00:00 2001
> From: Phillip Susi <psusi@cfl.rr.com>
> Date: Wed, 21 Sep 2011 10:02:13 +0200
> Subject: [PATCH] drivers/block/loop.c: emit uevent on auto release
>
> The loopback driver failed to emit the change uevent when auto releasing
> the device. Fixed lo_release() to pass the bdev to loop_clr_fd() so it
> can emit the event.
>
> Signed-off-by: Phillip Susi <psusi@cfl.rr.com>
> Cc: Jens Axboe <axboe@kernel.dk>
> Cc: Ayan George <ayan@ayan.net>
> Signed-off-by: Andrew Morton <akpm@google.com>
> Signed-off-by: Jens Axboe <axboe@kernel.dk>

ack, and we want a "cherry-picked" from here when applying as usual.

> ---
> drivers/block/loop.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/block/loop.c b/drivers/block/loop.c
> index b336433..c2ce03c 100644
> --- a/drivers/block/loop.c
> +++ b/drivers/block/loop.c
> @@ -1583,7 +1583,7 @@ static int lo_release(struct gendisk *disk, fmode_t mode)
> * In autoclear mode, stop the loop thread
> * and remove configuration after last close.
> */
> - err = loop_clr_fd(lo, NULL);
> + err = loop_clr_fd(lo, lo->lo_device);
> if (!err)
> goto out_unlocked;
> } else {
> --
> 1.7.5.4
>

> --
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

--
[]'s
Herton

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team


All times are GMT. The time now is 03:04 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.