X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Fbacking-dev.c;h=e5de3781d3feed5b6f156b064b4af8bb79871fed;hb=a8127717cb24be7b8827a8d9e0ddbfde6b392146;hp=f50a2811f9dc86b876d24e75333558583c075f1d;hpb=7c2aed4b5632fb536721b8494d1a4a65852ffb49;p=linux-2.6 diff --git a/mm/backing-dev.c b/mm/backing-dev.c index f50a2811f9..e5de3781d3 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -55,6 +55,22 @@ long congestion_wait(int rw, long timeout) } EXPORT_SYMBOL(congestion_wait); +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); + /** * congestion_end - wake up sleepers on a congested backing_dev_info * @rw: READ or WRITE