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