diff --git a/[refs] b/[refs] index e70758395940..8a88403e20db 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3dc7b82ea7649356bf027fba50c16ca50cec31e2 +refs/heads/master: 343f1fe6f2e3fb4912db241e639b0721c2e14f2e diff --git a/trunk/fs/9p/fcall.c b/trunk/fs/9p/fcall.c index 71742ba150c4..6f2617820a4e 100644 --- a/trunk/fs/9p/fcall.c +++ b/trunk/fs/9p/fcall.c @@ -98,23 +98,20 @@ v9fs_t_attach(struct v9fs_session_info *v9ses, char *uname, char *aname, static void v9fs_t_clunk_cb(void *a, struct v9fs_fcall *tc, struct v9fs_fcall *rc, int err) { - int fid; + int fid, id; struct v9fs_session_info *v9ses; - if (err) - return; - + id = 0; fid = tc->params.tclunk.fid; - kfree(tc); - - if (!rc) - return; - - v9ses = a; - if (rc->id == RCLUNK) - v9fs_put_idpool(fid, &v9ses->fidpool); + if (rc) + id = rc->id; + kfree(tc); kfree(rc); + if (id == RCLUNK) { + v9ses = a; + v9fs_put_idpool(fid, &v9ses->fidpool); + } } /**