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