Messages in this thread | | | Date | Thu, 25 Jan 2007 21:02:45 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH] nfs: fix congestion control -v4 |
| |
On Thu, 25 Jan 2007 16:32:28 +0100 Peter Zijlstra <a.p.zijlstra@chello.nl> 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 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/
| |