AHA! Now I have my answer. Thank you. I guess this breaks the log-jam?
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of John E. Adams
> Sent: Wednesday, June 23, 1999 8:50 PM
> To: [EMAIL PROTECTED]
> Subject: resync runs forever
>
>
> Hello,
> I think I have found a solution to the problem of
> raid5 resync running forever in the 2.2.8-10 kernels.
> There is a test in md_do_sync() in drivers/block/md.c that
> plays with
> current priority depending on io usage and the "speed_limit".
> Just hack
> out all but the last line of that test. Here's the code with
> the ifdefs
>
> //////////////////////////////////////////////////////////////
> ///////////
> /*
> * this loop exits only if either when we are
> slower than
> * the 'hard' speed limit, or the system was IO-idle for
> * a jiffy.
> * the system might be non-idle CPU-wise, but
> we only care
> * about not overloading the IO subsystem.
> (things like an
> * e2fsck being done on the RAID array should
> execute fast)
> */
> repeat:
> if (md_need_resched())
> schedule();
> #if 0
> if ((blocksize/1024)*j/((jiffies-starttime)/HZ + 1) + 1
> > sysctl_speed_limit) {
> current->priority = 0;
>
> if (!is_mddev_idle(mddev)) {
> current->state = TASK_INTERRUPTIBLE;
> md_schedule_timeout(HZ/2);
> goto repeat;
> }
> } else
> #endif
> current->priority = 40;
> }
> fsync_dev(read_disk);
> printk(KERN_INFO "md: md%d: sync done.\n",mdidx(mddev));
> err = 0;
>
> ////////////////////////////////////////////////////////////////////
> No guarantees, it works for me.
> johna
>