Files
sablink-distro/sys-block/iscsitarget/files/iscsitarget-2.6.38.patch
T
2011-03-17 14:19:17 +01:00

33 lines
1.1 KiB
Diff

--- iscsitarget-1.4.20.2.orig/kernel/block-io.c
+++ iscsitarget-1.4.20.2/kernel/block-io.c
@@ -155,14 +155,14 @@ blockio_open_path(struct iet_volume *vol
{
struct blockio_data *bio_data = volume->private;
struct block_device *bdev;
- int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
+ int flags = FMODE_EXCL | 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_exclusive(path, flags, THIS_MODULE);
+ bdev = blkdev_get_by_path(path, flags, THIS_MODULE);
if (IS_ERR(bdev)) {
err = PTR_ERR(bdev);
eprintk("Can't open device %s, error %d\n", path, err);
@@ -250,10 +250,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);
+ int flags = FMODE_EXCL | FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
if (bio_data->bdev)
- close_bdev_exclusive(bio_data->bdev, flags);
+ blkdev_put(bio_data->bdev, flags);
kfree(bio_data->path);
kfree(volume->private);