From 294e04ab1138e216423a9d8d6bd66d76f06dad5b Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Wed, 3 Feb 2010 08:27:22 -0500 Subject: [PATCH] --- yaml --- r: 180239 b: refs/heads/master c: 9f557cd8073104b39528794d44e129331ded649f h: refs/heads/master i: 180237: c71b9c4c675ea2039ba5585a608818964e06e914 180235: 219750dfe36e62d44d3bad43387a631ceda55107 180231: b7427a9a8e687cf0070bb5ad0e3b3881454ace45 180223: d6ecfc0a2658379b0710cf00f231f5a199e10333 v: v3 --- [refs] | 2 +- trunk/fs/nfs/pagelist.c | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 0d97a59a79f8..064909419257 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a2c0b9e291208f65221a0ad8a0c80a377707d480 +refs/heads/master: 9f557cd8073104b39528794d44e129331ded649f diff --git a/trunk/fs/nfs/pagelist.c b/trunk/fs/nfs/pagelist.c index e2975939126a..a12c45b65dd4 100644 --- a/trunk/fs/nfs/pagelist.c +++ b/trunk/fs/nfs/pagelist.c @@ -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); } /**