diff options
Diffstat (limited to 'fs/nfs')
| -rw-r--r-- | fs/nfs/inode.c | 2 | ||||
| -rw-r--r-- | fs/nfs/nfs3proc.c | 3 | ||||
| -rw-r--r-- | fs/nfs/nfs4proc.c | 12 |
3 files changed, 7 insertions, 10 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 541b418327c8..6922469d6fc5 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
| @@ -146,6 +146,8 @@ nfs_delete_inode(struct inode * inode) | |||
| 146 | { | 146 | { |
| 147 | dprintk("NFS: delete_inode(%s/%ld)\n", inode->i_sb->s_id, inode->i_ino); | 147 | dprintk("NFS: delete_inode(%s/%ld)\n", inode->i_sb->s_id, inode->i_ino); |
| 148 | 148 | ||
| 149 | truncate_inode_pages(&inode->i_data, 0); | ||
| 150 | |||
| 149 | nfs_wb_all(inode); | 151 | nfs_wb_all(inode); |
| 150 | /* | 152 | /* |
| 151 | * The following should never happen... | 153 | * The following should never happen... |
diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c index 2681485cf2d0..edc95514046d 100644 --- a/fs/nfs/nfs3proc.c +++ b/fs/nfs/nfs3proc.c | |||
| @@ -34,8 +34,7 @@ nfs3_rpc_wrapper(struct rpc_clnt *clnt, struct rpc_message *msg, int flags) | |||
| 34 | res = rpc_call_sync(clnt, msg, flags); | 34 | res = rpc_call_sync(clnt, msg, flags); |
| 35 | if (res != -EJUKEBOX) | 35 | if (res != -EJUKEBOX) |
| 36 | break; | 36 | break; |
| 37 | set_current_state(TASK_INTERRUPTIBLE); | 37 | schedule_timeout_interruptible(NFS_JUKEBOX_RETRY_TIME); |
| 38 | schedule_timeout(NFS_JUKEBOX_RETRY_TIME); | ||
| 39 | res = -ERESTARTSYS; | 38 | res = -ERESTARTSYS; |
| 40 | } while (!signalled()); | 39 | } while (!signalled()); |
| 41 | rpc_clnt_sigunmask(clnt, &oldset); | 40 | rpc_clnt_sigunmask(clnt, &oldset); |
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; |
