aboutsummaryrefslogtreecommitdiffstats
path: root/main/iscsitarget-grsec/iscsitarget-2.6.38.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/iscsitarget-grsec/iscsitarget-2.6.38.patch')
-rw-r--r--main/iscsitarget-grsec/iscsitarget-2.6.38.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/main/iscsitarget-grsec/iscsitarget-2.6.38.patch b/main/iscsitarget-grsec/iscsitarget-2.6.38.patch
new file mode 100644
index 0000000000..90a5e56449
--- /dev/null
+++ b/main/iscsitarget-grsec/iscsitarget-2.6.38.patch
@@ -0,0 +1,32 @@
+--- ./kernel/block-io.c.orig
++++ ./kernel/block-io.c
+@@ -155,14 +155,14 @@
+ {
+ 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 @@
+ 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);