On Sun, Apr 19, 2009 at 12:36:20PM +0200, Mike Hommey wrote:
> tag 523374 fixed-upstream patch
> thanks
> 
> This is fixed upstream:
> http://svn.berlios.de/wsvn/iscsitarget/?op=comp&compare[]=...@210&compare[]=...@211
> 
> For convenience, the patch is attached here.

This newly attached patch is also necessary. It comes from
http://svn.berlios.de/wsvn/iscsitarget/?op=comp&compare[]=...@203&compare[]=...@204

Mike
diff --git a/kernel/block-io.c b/kernel/block-io.c
index e4a25f7..708f101 100644
--- a/kernel/block-io.c
+++ b/kernel/block-io.c
@@ -154,14 +154,14 @@ blockio_open_path(struct iet_volume *volume, const char 
*path)
 {
        struct blockio_data *bio_data = volume->private;
        struct block_device *bdev;
-       int flags = LUReadonly(volume) ? MS_RDONLY : 0;
+       int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
        int err = 0;
 
        bio_data->path = kstrdup(path, GFP_KERNEL);
        if (!bio_data->path)
                return -ENOMEM;
 
-       bdev = open_bdev_excl(path, flags, THIS_MODULE);
+       bdev = open_bdev_exclusive(path, flags, THIS_MODULE);
        if (IS_ERR(bdev)) {
                err = PTR_ERR(bdev);
                eprintk("Can't open device %s, error %d\n", path, err);
@@ -323,9 +323,10 @@ static void
 blockio_detach(struct iet_volume *volume)
 {
        struct blockio_data *bio_data = volume->private;
+       int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
 
        if (bio_data->bdev)
-               close_bdev_excl(bio_data->bdev);
+               close_bdev_exclusive(bio_data->bdev, flags);
        kfree(bio_data->path);
 
        kfree(volume->private);
diff --git a/kernel/event.c b/kernel/event.c
index e45ed67..240404d 100644
--- a/kernel/event.c
+++ b/kernel/event.c
@@ -92,6 +92,5 @@ int event_init(void)
 
 void event_exit(void)
 {
-       if (nl)
-               sock_release(nl->sk_socket);
+       netlink_kernel_release(nl);
 }

Reply via email to