summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/pagelist.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index 0b8446f1008d..a8759825ac76 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -138,6 +138,12 @@ nfs_iocounter_wait(struct nfs_io_counter *c)
return __nfs_iocounter_wait(c);
}
+static int nfs_wait_bit_uninterruptible(void *word)
+{
+ io_schedule();
+ return 0;
+}
+
/*
* nfs_page_group_lock - lock the head of the page group
* @req - request in group that is to be locked
@@ -148,13 +154,12 @@ void
nfs_page_group_lock(struct nfs_page *req)
{
struct nfs_page *head = req->wb_head;
- int err = -EAGAIN;
WARN_ON_ONCE(head != head->wb_head);
- while (err)
- err = wait_on_bit_lock(&head->wb_flags, PG_HEADLOCK,
- nfs_wait_bit_killable, TASK_KILLABLE);
+ wait_on_bit_lock(&head->wb_flags, PG_HEADLOCK,
+ nfs_wait_bit_uninterruptible,
+ TASK_UNINTERRUPTIBLE);
}
/*
@@ -410,12 +415,6 @@ void nfs_release_request(struct nfs_page *req)
kref_put(&req->wb_kref, nfs_page_group_destroy);
}
-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.