diff options
| author | Jens Axboe <jens.axboe@oracle.com> | 2010-02-22 13:48:51 +0100 |
|---|---|---|
| committer | Jens Axboe <jens.axboe@oracle.com> | 2010-02-22 13:48:51 +0100 |
| commit | f11cbd74c5ff3614f6390b4de67a6ffdc614c378 (patch) | |
| tree | 6a30920ade9eeaac5bf6d6263b5d09712e882eb0 /fs/nfs/pagelist.c | |
| parent | 429c42c9d246f5bda868495c09974312a0177328 (diff) | |
| parent | aea187c46f7d03ce985e55eb1398d0776a15b928 (diff) | |
Merge branch 'master' into for-2.6.34
Diffstat (limited to 'fs/nfs/pagelist.c')
| -rw-r--r-- | fs/nfs/pagelist.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index e2975939126..a12c45b65dd 100644 --- a/fs/nfs/pagelist.c +++ b/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); } /** |
