diff options
Diffstat (limited to 'mm/backing-dev.c')
| -rw-r--r-- | mm/backing-dev.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index f50a2811f9dc..e5de3781d3fe 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
| @@ -55,6 +55,22 @@ long congestion_wait(int rw, long timeout) | |||
| 55 | } | 55 | } |
| 56 | EXPORT_SYMBOL(congestion_wait); | 56 | EXPORT_SYMBOL(congestion_wait); |
| 57 | 57 | ||
| 58 | long congestion_wait_interruptible(int rw, long timeout) | ||
| 59 | { | ||
| 60 | long ret; | ||
| 61 | DEFINE_WAIT(wait); | ||
| 62 | wait_queue_head_t *wqh = &congestion_wqh[rw]; | ||
| 63 | |||
| 64 | prepare_to_wait(wqh, &wait, TASK_INTERRUPTIBLE); | ||
| 65 | if (signal_pending(current)) | ||
| 66 | ret = -ERESTARTSYS; | ||
| 67 | else | ||
| 68 | ret = io_schedule_timeout(timeout); | ||
| 69 | finish_wait(wqh, &wait); | ||
| 70 | return ret; | ||
| 71 | } | ||
| 72 | EXPORT_SYMBOL(congestion_wait_interruptible); | ||
| 73 | |||
| 58 | /** | 74 | /** |
| 59 | * congestion_end - wake up sleepers on a congested backing_dev_info | 75 | * congestion_end - wake up sleepers on a congested backing_dev_info |
| 60 | * @rw: READ or WRITE | 76 | * @rw: READ or WRITE |
