|
@@ -176,6 +176,12 @@ void nfs_release_request(struct nfs_page *req)
|
|
|
kref_put(&req->wb_kref, nfs_free_request);
|
|
|
}
|
|
|
|
|
|
+static int nfs_wait_bit_uninterruptible(void *word)
|
|
|
+{
|
|
|
+ io_schedule();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* nfs_wait_on_request - Wait for a request to complete.
|
|
|
* @req: request to wait upon.
|
|
@@ -186,14 +192,9 @@ void nfs_release_request(struct nfs_page *req)
|
|
|
int
|
|
|
nfs_wait_on_request(struct nfs_page *req)
|
|
|
{
|
|
|
- int ret = 0;
|
|
|
-
|
|
|
- if (!test_bit(PG_BUSY, &req->wb_flags))
|
|
|
- goto out;
|
|
|
- ret = out_of_line_wait_on_bit(&req->wb_flags, PG_BUSY,
|
|
|
- nfs_wait_bit_killable, TASK_KILLABLE);
|
|
|
-out:
|
|
|
- return ret;
|
|
|
+ return wait_on_bit(&req->wb_flags, PG_BUSY,
|
|
|
+ nfs_wait_bit_uninterruptible,
|
|
|
+ TASK_UNINTERRUPTIBLE);
|
|
|
}
|
|
|
|
|
|
/**
|