patch-2.4.18 linux/drivers/md/md.c
Next file: linux/drivers/md/multipath.c
Previous file: linux/drivers/md/lvm-fs.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Mon Jan 14 23:22:48 2002
- Orig file:
linux.orig/drivers/md/md.c
- Orig date:
Mon Feb 18 20:18:39 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/drivers/md/md.c linux/drivers/md/md.c
@@ -1000,6 +1000,11 @@
struct md_list_head *tmp;
mdk_rdev_t *rdev;
+ if (!mddev->sb_dirty) {
+ printk("hm, md_update_sb() called without ->sb_dirty == 1, from %p.\n", __builtin_return_address(0));
+ return 0;
+ }
+ mddev->sb_dirty = 0;
repeat:
mddev->sb->utime = CURRENT_TIME;
if ((++mddev->sb->events_lo)==0)
@@ -1724,6 +1729,7 @@
}
mddev->sb->state &= ~(1 << MD_SB_CLEAN);
+ mddev->sb_dirty = 1;
md_update_sb(mddev);
/*
@@ -1841,6 +1847,7 @@
printk(KERN_INFO "md: marking sb clean...\n");
mddev->sb->state |= 1 << MD_SB_CLEAN;
}
+ mddev->sb_dirty = 1;
md_update_sb(mddev);
}
if (ro)
@@ -2464,7 +2471,6 @@
mddev->sb->working_disks++;
mddev->sb_dirty = 1;
-
md_update_sb(mddev);
/*
@@ -3515,6 +3521,8 @@
continue;
if (sb->active_disks == sb->raid_disks)
continue;
+ if (mddev->sb_dirty)
+ md_update_sb(mddev);
if (!sb->spare_disks) {
printk(KERN_ERR "md%d: no spare disk to reconstruct array! "
"-- continuing in degraded mode\n", mdidx(mddev));
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)