diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-03 03:55:58 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-06 14:58:58 -0500 |
commit | 26c78e156b1d1b2387ec33b5f2fb62d6e0a186a3 (patch) | |
tree | fdbcdc6baa25af41d6935eebd537997fa24bf495 /fs/nfs/delegation.c | |
parent | 58df095b732529ade8f4051b41d7c29731afecd6 (diff) |
NFSv4: Fix an Oops in nfs_do_expire_all_delegations
If the loop errors, we need to exit.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/delegation.c')
-rw-r--r-- | fs/nfs/delegation.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index 66cc720e3927..c6f07c1c71e6 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c | |||
@@ -236,7 +236,6 @@ int nfs_do_expire_all_delegations(void *ptr) | |||
236 | struct nfs4_client *clp = ptr; | 236 | struct nfs4_client *clp = ptr; |
237 | struct nfs_delegation *delegation; | 237 | struct nfs_delegation *delegation; |
238 | struct inode *inode; | 238 | struct inode *inode; |
239 | int err = 0; | ||
240 | 239 | ||
241 | allow_signal(SIGKILL); | 240 | allow_signal(SIGKILL); |
242 | restart: | 241 | restart: |
@@ -250,10 +249,9 @@ restart: | |||
250 | if (inode == NULL) | 249 | if (inode == NULL) |
251 | continue; | 250 | continue; |
252 | spin_unlock(&clp->cl_lock); | 251 | spin_unlock(&clp->cl_lock); |
253 | err = nfs_inode_return_delegation(inode); | 252 | nfs_inode_return_delegation(inode); |
254 | iput(inode); | 253 | iput(inode); |
255 | if (!err) | 254 | goto restart; |
256 | goto restart; | ||
257 | } | 255 | } |
258 | out: | 256 | out: |
259 | spin_unlock(&clp->cl_lock); | 257 | spin_unlock(&clp->cl_lock); |