Re: Patch?: linux-2.5.2-pre8/fs/ext3/super.c - variation of fix by Andrew Morton

From: Andrew Morton (akpm@zip.com.au)
Date: Sat Jan 05 2002 - 14:07:47 EST


[ There's some problem with yggdrasil.com MX records ]

"Adam J. Richter" wrote:
>
> Andrwe Morton posted a fix for the compilation error in
> linux-2.5.2-pre8/fs/ext3/super.c. I have changed his test to
> use "!kdev_none()" instead of "!kdev_val()". It will compile
> to the same opcodes, but I think this way is slightly more proper.
> It may even make a difference some day if the internal representation
> of kdev_val or kdev_none changes in a weird way so that
> kdev_val(NODEV) returns non-zero, although I think this is unlikely.
>

Thanks, Adam. The patch did not please the kdev_t purists :)

Current preferred version:

--- linux-2.5.2-pre7/fs/ext3/super.c Fri Jan 4 18:48:43 2002
+++ 25/fs/ext3/super.c Sat Jan 5 00:40:24 2002
@@ -47,19 +47,19 @@ static void ext3_clear_journal_err(struc
                                    struct ext3_super_block * es);
 
 #ifdef CONFIG_JBD_DEBUG
-int journal_no_write[2];
+kdev_t journal_no_write[2];
 
 /*
  * Debug code for turning filesystems "read-only" after a specified
  * amount of time. This is for crash/recovery testing.
  */
 
-static void make_rdonly(kdev_t dev, int *no_write)
+static void make_rdonly(kdev_t dev, kdev_t *no_write)
 {
- if (dev) {
+ if (!kdev_none(dev)) {
                 printk(KERN_WARNING "Turning device %s read-only\n",
                        bdevname(dev));
- *no_write = 0xdead0000 + dev;
+ *no_write = dev;
         }
 }
 
@@ -80,8 +80,8 @@ static void setup_ro_after(struct super_
                 printk(KERN_DEBUG "fs will go read-only in %d jiffies\n",
                        ext3_ro_after);
                 init_waitqueue_head(&sbi->ro_wait_queue);
- journal_no_write[0] = 0;
- journal_no_write[1] = 0;
+ journal_no_write[0] = NODEV;
+ journal_no_write[1] = NODEV;
                 sbi->turn_ro_timer.function = turn_fs_readonly;
                 sbi->turn_ro_timer.data = (unsigned long)sb;
                 sbi->turn_ro_timer.expires = jiffies + ext3_ro_after;
@@ -93,8 +93,8 @@ static void setup_ro_after(struct super_
 static void clear_ro_after(struct super_block *sb)
 {
         del_timer_sync(&EXT3_SB(sb)->turn_ro_timer);
- journal_no_write[0] = 0;
- journal_no_write[1] = 0;
+ journal_no_write[0] = NODEV;
+ journal_no_write[1] = NODEV;
         ext3_ro_after = 0;
 }
 #else
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 07 2002 - 21:00:29 EST