On Thu, 25 Jan 2007 16:32:28 +0100 Peter Zijlstra <[EMAIL PROTECTED]> wrote:
> +long congestion_wait_interruptible(int rw, long timeout) > +{ > + long ret; > + DEFINE_WAIT(wait); > + wait_queue_head_t *wqh = &congestion_wqh[rw]; > + > + prepare_to_wait(wqh, &wait, TASK_INTERRUPTIBLE); > + if (signal_pending(current)) > + ret = -ERESTARTSYS; > + else > + ret = io_schedule_timeout(timeout); > + finish_wait(wqh, &wait); > + return ret; > +} > +EXPORT_SYMBOL(congestion_wait_interruptible); I think this can share code with congestion_wait()? static long __congestion_wait(int rw, long timeout, int state) { long ret; DEFINE_WAIT(wait); wait_queue_head_t *wqh = &congestion_wqh[rw]; prepare_to_wait(wqh, &wait, state); ret = io_schedule_timeout(timeout); finish_wait(wqh, &wait); return ret; } long congestion_wait_interruptible(int rw, long timeout) { long ret = __congestion_wait(rw, timeout); if (signal_pending(current)) ret = -ERESTARTSYS; return ret; } it's only infinitesimally less efficient.. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/