diff options
author | Nishanth Aravamudan <nacc@us.ibm.com> | 2005-09-10 03:27:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-10 13:06:36 -0400 |
commit | 041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac (patch) | |
tree | 41ff880a87412cf55eb12425e916fda57955ee5c /fs/nfs/nfs4proc.c | |
parent | 373016e9e1353f2af871993d27d00768f08cc883 (diff) |
[PATCH] fs: fix-up schedule_timeout() usage
Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size. Also use helper
functions to convert between human time units and jiffies rather than constant
HZ division to avoid rounding errors.
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 0c5a308e4963..9701ca8c9428 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -2418,14 +2418,11 @@ static int nfs4_delay(struct rpc_clnt *clnt, long *timeout) | |||
2418 | *timeout = NFS4_POLL_RETRY_MAX; | 2418 | *timeout = NFS4_POLL_RETRY_MAX; |
2419 | rpc_clnt_sigmask(clnt, &oldset); | 2419 | rpc_clnt_sigmask(clnt, &oldset); |
2420 | if (clnt->cl_intr) { | 2420 | if (clnt->cl_intr) { |
2421 | set_current_state(TASK_INTERRUPTIBLE); | 2421 | schedule_timeout_interruptible(*timeout); |
2422 | schedule_timeout(*timeout); | ||
2423 | if (signalled()) | 2422 | if (signalled()) |
2424 | res = -ERESTARTSYS; | 2423 | res = -ERESTARTSYS; |
2425 | } else { | 2424 | } else |
2426 | set_current_state(TASK_UNINTERRUPTIBLE); | 2425 | schedule_timeout_uninterruptible(*timeout); |
2427 | schedule_timeout(*timeout); | ||
2428 | } | ||
2429 | rpc_clnt_sigunmask(clnt, &oldset); | 2426 | rpc_clnt_sigunmask(clnt, &oldset); |
2430 | *timeout <<= 1; | 2427 | *timeout <<= 1; |
2431 | return res; | 2428 | return res; |
@@ -2578,8 +2575,7 @@ int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4 | |||
2578 | static unsigned long | 2575 | static unsigned long |
2579 | nfs4_set_lock_task_retry(unsigned long timeout) | 2576 | nfs4_set_lock_task_retry(unsigned long timeout) |
2580 | { | 2577 | { |
2581 | current->state = TASK_INTERRUPTIBLE; | 2578 | schedule_timeout_interruptible(timeout); |
2582 | schedule_timeout(timeout); | ||
2583 | timeout <<= 1; | 2579 | timeout <<= 1; |
2584 | if (timeout > NFS4_LOCK_MAXTIMEOUT) | 2580 | if (timeout > NFS4_LOCK_MAXTIMEOUT) |
2585 | return NFS4_LOCK_MAXTIMEOUT; | 2581 | return NFS4_LOCK_MAXTIMEOUT; |