diff --git a/fs/9p/trans_fd.c b/fs/9p/trans_fd.c index 63b58ce98ff45cbc4c1f19eb668b8fb61f18b706..b7ffb98595881f31f0c40cb7b6d519ee3050c3ed 100644 --- a/fs/9p/trans_fd.c +++ b/fs/9p/trans_fd.c @@ -148,12 +148,12 @@ static void v9fs_fd_close(struct v9fs_transport *trans) if (!trans) return; - trans->status = Disconnected; - ts = trans->priv; + ts = xchg(&trans->priv, NULL); if (!ts) return; + trans->status = Disconnected; if (ts->in_file) fput(ts->in_file);