Whamcloud - gitweb
Branch b1_4
authornathan <nathan>
Mon, 11 Apr 2005 17:25:19 +0000 (17:25 +0000)
committernathan <nathan>
Mon, 11 Apr 2005 17:25:19 +0000 (17:25 +0000)
b=4834
bdev, not kdev on 2.6

lustre/kernel_patches/patches/dev_read_only-2.6-lnxi.patch
lustre/kernel_patches/patches/dev_read_only-2.6-suse.patch

index ba8472e..52d168b 100644 (file)
@@ -1,5 +1,6 @@
---- linux-2.6.5-suse.orig/drivers/block/ll_rw_blk.c    2004-11-11 07:28:51.000000000 -0800
-+++ linux-2.6.5/drivers/block/ll_rw_blk.c      2005-03-16 10:57:38.000000000 -0800
+diff -ur linux-2.6.5-lnxi.orig/drivers/block/ll_rw_blk.c linux-2.6.5-lnxi/drivers/block/ll_rw_blk.c
+--- linux-2.6.5-lnxi.orig/drivers/block/ll_rw_blk.c    2004-11-11 07:28:51.000000000 -0800
++++ linux-2.6.5-lnxi/drivers/block/ll_rw_blk.c 2005-04-11 09:42:22.750936924 -0700
 @@ -2458,7 +2458,7 @@ static inline void blk_partition_remap(s
        }
  }
        
 -      printk(KERN_WARNING "Clearing read-only at %d\n", no_write);
 -      rdonly_devs[no_write] = 0;
-+        spin_lock(&devlock);
-+        cur = devlist;
-+        while(cur) {
-+                if (bdev->bd_dev == cur->dev) {
-+                        spin_unlock(&devlock);
-+                        kfree(newdev);
-+                        return;
- }
+-}
 -
 -int dev_check_rdonly(dev_t dev)
 -{
 -              if (rdonly_devs[i] == dev)
 -                      return 1;
 -      return 0;
++        spin_lock(&devlock);
++        cur = devlist;
++        while(cur) {
++                if (bdev->bd_dev == cur->dev) {
++                        spin_unlock(&devlock);
++                        kfree(newdev);
++                        return;
++}
 +                cur = cur->next;
 +        }
 +        newdev->dev = bdev->bd_dev;
  }
  
  EXPORT_SYMBOL(dev_set_rdonly);
---- linux-2.6.5-suse.orig/include/linux/fs.h   2004-11-11 07:28:45.000000000 -0800
-+++ linux-2.6.5/include/linux/fs.h     2005-04-07 18:12:42.772181591 -0700
+diff -ur linux-2.6.5-lnxi.orig/fs/block_dev.c linux-2.6.5-lnxi/fs/block_dev.c
+--- linux-2.6.5-lnxi.orig/fs/block_dev.c       2004-11-11 07:28:30.000000000 -0800
++++ linux-2.6.5-lnxi/fs/block_dev.c    2005-04-11 09:49:01.891407856 -0700
+@@ -739,6 +739,7 @@ int blkdev_put(struct block_device *bdev
+       }
+       unlock_kernel();
+       up(&bdev->bd_sem);
++      dev_clear_rdonly(bdev);
+       bdput(bdev);
+       return ret;
+ }
+diff -ur linux-2.6.5-lnxi.orig/include/linux/fs.h linux-2.6.5-lnxi/include/linux/fs.h
+--- linux-2.6.5-lnxi.orig/include/linux/fs.h   2004-11-11 07:28:45.000000000 -0800
++++ linux-2.6.5-lnxi/include/linux/fs.h        2005-04-11 09:43:27.423116140 -0700
 @@ -1385,6 +1385,10 @@ extern void file_kill(struct file *f);
  struct bio;
  extern int submit_bio(int, struct bio *);
  extern int bdev_read_only(struct block_device *);
 +#define HAVE_CLEAR_RDONLY_ON_PUT
-+void dev_set_rdonly(kdev_t dev);
-+int dev_check_rdonly(kdev_t dev);
-+void dev_clear_rdonly(kdev_t dev);
++void dev_set_rdonly(struct block_device *bdev);
++int dev_check_rdonly(struct block_device *bdev);
++void dev_clear_rdonly(struct block_device *bdev);
  extern int set_blocksize(struct block_device *, int);
  extern int sb_set_blocksize(struct super_block *, int);
  extern int sb_min_blocksize(struct super_block *, int);
---- linux-2.6.5-suse.orig/fs/block_dev.c       2004-11-11 07:28:30.000000000 -0800
-+++ linux-2.6.5/fs/block_dev.c 2005-04-07 18:14:27.948304347 -0700
-@@ -739,6 +739,7 @@ int blkdev_put(struct block_device *bdev
-       }
-       unlock_kernel();
-       up(&bdev->bd_sem);
-+      dev_clear_rdonly(to_kdev_t(bdev->bd_dev));
-       bdput(bdev);
-       return ret;
- }
index 264090d..ce244ae 100644 (file)
@@ -1,5 +1,6 @@
---- linux-2.6.5-suse.orig/drivers/block/ll_rw_blk.c.naked      2005-04-07 17:43:49.143050888 -0700
-+++ linux-2.6.5/drivers/block/ll_rw_blk.c      2005-03-16 10:57:38.000000000 -0800
+diff -ur linux-2.6.5-lnxi.orig/drivers/block/ll_rw_blk.c linux-2.6.5-lnxi/drivers/block/ll_rw_blk.c
+--- linux-2.6.5-lnxi.orig/drivers/block/ll_rw_blk.c    2005-04-11 10:16:14.278505679 -0700
++++ linux-2.6.5-lnxi/drivers/block/ll_rw_blk.c 2005-04-11 09:42:22.750936924 -0700
 @@ -2458,6 +2458,8 @@ static inline void blk_partition_remap(s
        }
  }
@@ -16,8 +17,8 @@
 +              /* this is cfs's dev_rdonly check */
 +              if (bio->bi_rw == WRITE &&
 +                              dev_check_rdonly(bio->bi_bdev)) {
-+                      bio_endio(bio, bio->bi_size, 0);
-+                      break;
++                      bio_endio(bio, bio->bi_size, 0);
++                      break;
 +              }
 +
                /*
@@ -48,9 +49,9 @@
 +                if (bdev->bd_dev == cur->dev) {
 +                        spin_unlock(&devlock);
 +                        return 1;
-+                }
++      }
 +                cur = cur->next;
-+        }
++      }
 +        spin_unlock(&devlock);
 +        return 0;
 +}
@@ -63,8 +64,8 @@
 +              return;
 +        newdev = kmalloc(sizeof(struct deventry), GFP_KERNEL);
 +        if (!newdev) 
-+              return;
-+
++              return;
++      
 +        spin_lock(&devlock);
 +        cur = devlist;
 +        while(cur) {
@@ -72,7 +73,7 @@
 +                        spin_unlock(&devlock);
 +                        kfree(newdev);
 +                        return;
-+                }
++}
 +                cur = cur->next;
 +        }
 +        newdev->dev = bdev->bd_dev;
   * sysfs parts below
   */
  struct queue_sysfs_entry {
---- linux-2.6.5-suse.orig/include/linux/fs.h   2004-11-11 07:28:45.000000000 -0800
-+++ linux-2.6.5/include/linux/fs.h     2005-04-07 18:12:42.772181591 -0700
+diff -ur linux-2.6.5-lnxi.orig/fs/block_dev.c linux-2.6.5-lnxi/fs/block_dev.c
+--- linux-2.6.5-lnxi.orig/fs/block_dev.c       2004-11-11 07:28:30.000000000 -0800
++++ linux-2.6.5-lnxi/fs/block_dev.c    2005-04-11 09:49:01.891407856 -0700
+@@ -739,6 +739,7 @@ int blkdev_put(struct block_device *bdev
+       }
+       unlock_kernel();
+       up(&bdev->bd_sem);
++      dev_clear_rdonly(bdev);
+       bdput(bdev);
+       return ret;
+ }
+diff -ur linux-2.6.5-lnxi.orig/include/linux/fs.h linux-2.6.5-lnxi/include/linux/fs.h
+--- linux-2.6.5-lnxi.orig/include/linux/fs.h   2004-11-11 07:28:45.000000000 -0800
++++ linux-2.6.5-lnxi/include/linux/fs.h        2005-04-11 09:43:27.423116140 -0700
 @@ -1385,6 +1385,10 @@ extern void file_kill(struct file *f);
  struct bio;
  extern int submit_bio(int, struct bio *);
  extern int bdev_read_only(struct block_device *);
 +#define HAVE_CLEAR_RDONLY_ON_PUT
-+void dev_set_rdonly(kdev_t dev);
-+int dev_check_rdonly(kdev_t dev);
-+void dev_clear_rdonly(kdev_t dev);
++void dev_set_rdonly(struct block_device *bdev);
++int dev_check_rdonly(struct block_device *bdev);
++void dev_clear_rdonly(struct block_device *bdev);
  extern int set_blocksize(struct block_device *, int);
  extern int sb_set_blocksize(struct super_block *, int);
  extern int sb_min_blocksize(struct super_block *, int);
---- linux-2.6.5-suse.orig/fs/block_dev.c       2004-11-11 07:28:30.000000000 -0800
-+++ linux-2.6.5/fs/block_dev.c 2005-04-07 18:14:27.948304347 -0700
-@@ -739,6 +739,7 @@ int blkdev_put(struct block_device *bdev
-       }
-       unlock_kernel();
-       up(&bdev->bd_sem);
-+      dev_clear_rdonly(to_kdev_t(bdev->bd_dev));
-       bdput(bdev);
-       return ret;
- }