From 2ce0b227da3b5de77568e8c3d7f7d512a93a4131 Mon Sep 17 00:00:00 2001 From: wangchao Date: Tue, 9 Dec 2003 11:42:17 +0000 Subject: [PATCH] b=2284 r=Robert scsi support for dev_read_only --- .../patches/dev_read_only_2.4.20-rh.patch | 52 +++++++--------------- 1 file changed, 16 insertions(+), 36 deletions(-) diff --git a/lustre/kernel_patches/patches/dev_read_only_2.4.20-rh.patch b/lustre/kernel_patches/patches/dev_read_only_2.4.20-rh.patch index a02c57f..d3fa230 100644 --- a/lustre/kernel_patches/patches/dev_read_only_2.4.20-rh.patch +++ b/lustre/kernel_patches/patches/dev_read_only_2.4.20-rh.patch @@ -1,12 +1,7 @@ - drivers/block/blkpg.c | 35 +++++++++++++++++++++++++++++++++++ - drivers/block/loop.c | 3 +++ - drivers/ide/ide-disk.c | 5 +++++ - 3 files changed, 43 insertions(+) - -Index: linux-2.4.20-rh-20.9/drivers/block/blkpg.c +Index: linux-2.4.20-rh/drivers/block/blkpg.c =================================================================== ---- linux-2.4.20-rh-20.9.orig/drivers/block/blkpg.c 2003-11-13 17:19:32.000000000 +0300 -+++ linux-2.4.20-rh-20.9/drivers/block/blkpg.c 2003-11-13 17:20:28.000000000 +0300 +--- linux-2.4.20-rh.orig/drivers/block/blkpg.c 2003-07-22 16:02:29.000000000 +0800 ++++ linux-2.4.20-rh/drivers/block/blkpg.c 2003-12-09 17:33:09.000000000 +0800 @@ -297,3 +297,38 @@ } @@ -46,33 +41,18 @@ Index: linux-2.4.20-rh-20.9/drivers/block/blkpg.c +EXPORT_SYMBOL(dev_set_rdonly); +EXPORT_SYMBOL(dev_check_rdonly); +EXPORT_SYMBOL(dev_clear_rdonly); -Index: linux-2.4.20-rh-20.9/drivers/block/loop.c +Index: linux-2.4.20-rh/drivers/block/ll_rw_blk.c =================================================================== ---- linux-2.4.20-rh-20.9.orig/drivers/block/loop.c 2003-11-13 17:19:32.000000000 +0300 -+++ linux-2.4.20-rh-20.9/drivers/block/loop.c 2003-11-13 17:20:28.000000000 +0300 -@@ -491,6 +491,9 @@ - spin_unlock_irq(&lo->lo_lock); - - if (rw == WRITE) { -+ if (dev_check_rdonly(rbh->b_rdev)) -+ goto err; -+ - if (lo->lo_flags & LO_FLAGS_READ_ONLY) - goto err; - } else if (rw == READA) { -Index: linux-2.4.20-rh-20.9/drivers/ide/ide-disk.c -=================================================================== ---- linux-2.4.20-rh-20.9.orig/drivers/ide/ide-disk.c 2003-11-13 17:19:32.000000000 +0300 -+++ linux-2.4.20-rh-20.9/drivers/ide/ide-disk.c 2003-11-13 18:13:46.000000000 +0300 -@@ -371,6 +371,11 @@ - if (driver_blocked) - panic("Request while ide driver is blocked?"); - -+ if (rq->cmd == WRITE && dev_check_rdonly(rq->rq_dev)) { -+ ide_end_request(drive, 1); -+ return ide_stopped; -+ } -+ - if (IDE_CONTROL_REG) - hwif->OUTB(drive->ctl, IDE_CONTROL_REG); +--- linux-2.4.20-rh.orig/drivers/block/ll_rw_blk.c 2003-07-22 16:02:34.000000000 +0800 ++++ linux-2.4.20-rh/drivers/block/ll_rw_blk.c 2003-12-09 17:39:38.000000000 +0800 +@@ -1183,6 +1183,10 @@ + buffer_IO_error(bh); + break; + } ++ if ((rw & WRITE)&&(dev_check_rdonly(bh->b_rdev))) { ++ bh->b_end_io(bh, 0); ++ break; ++ } + } while (q->make_request_fn(q, rw, bh)); + } -- 1.8.3.1