summaryrefslogtreecommitdiff
path: root/fs/9p/trans_sock.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/9p/trans_sock.c')
-rw-r--r--fs/9p/trans_sock.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/9p/trans_sock.c b/fs/9p/trans_sock.c
index 081d1c847803..01e26f0013ac 100644
--- a/fs/9p/trans_sock.c
+++ b/fs/9p/trans_sock.c
@@ -254,7 +254,12 @@ v9fs_unix_init(struct v9fs_session_info *v9ses, const char *dev_name,
static void v9fs_sock_close(struct v9fs_transport *trans)
{
- struct v9fs_trans_sock *ts = trans ? trans->priv : NULL;
+ struct v9fs_trans_sock *ts;
+
+ if (!trans)
+ return;
+
+ ts = trans->priv;
if ((ts) && (ts->s)) {
dprintk(DEBUG_TRANS, "closing the socket %p\n", ts->s);
@@ -264,7 +269,10 @@ static void v9fs_sock_close(struct v9fs_transport *trans)
dprintk(DEBUG_TRANS, "socket closed\n");
}
- kfree(ts);
+ if (ts)
+ kfree(ts);
+
+ trans->priv = NULL;
}
struct v9fs_transport v9fs_trans_tcp = {