summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4filelayout.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-10-11 18:26:04 +0200
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-10-15 16:49:42 +0200
commit8fcdc31b3d09bc348ff9bf752ae1291828756cfa (patch)
treed56ebacf4dd7290a60555756882178f8541603d0 /fs/nfs/nfs4filelayout.c
parentLinux 3.7-rc1 (diff)
downloadlinux-8fcdc31b3d09bc348ff9bf752ae1291828756cfa.tar.xz
linux-8fcdc31b3d09bc348ff9bf752ae1291828756cfa.zip
NFSv4.1: Kill nfs4_ds_disconnect()
There is nothing to prevent another thread from dereferencing ds->ds_clp during or after the call to nfs4_ds_disconnect(), and Oopsing due to the resulting NULL pointer. Instead, we should just rely on filelayout_mark_devid_invalid() to keep us out of trouble by avoiding that deviceid. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4filelayout.c')
-rw-r--r--fs/nfs/nfs4filelayout.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
index 52d847212066..816c2d0d133a 100644
--- a/fs/nfs/nfs4filelayout.c
+++ b/fs/nfs/nfs4filelayout.c
@@ -207,7 +207,6 @@ static int filelayout_async_handle_error(struct rpc_task *task,
clear_bit(NFS_INO_LAYOUTCOMMIT, &NFS_I(inode)->flags);
_pnfs_return_layout(inode);
rpc_wake_up(&tbl->slot_tbl_waitq);
- nfs4_ds_disconnect(clp);
/* fall through */
default:
reset: