X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2F9p%2Ffcall.c;h=dc336a67592fb6330503c0a9e9fa7b70f7e805ee;hb=0a01707b289853f56d1c000057b27e243c039722;hp=71742ba150c44f12a4abb3b4ce45c15fcc15e775;hpb=ace48471736a4b00753c74633f430c4a3a7d89cb;p=mv-sheeva.git diff --git a/fs/9p/fcall.c b/fs/9p/fcall.c index 71742ba150c..dc336a67592 100644 --- a/fs/9p/fcall.c +++ b/fs/9p/fcall.c @@ -24,10 +24,10 @@ * */ -#include #include #include #include +#include #include #include "debug.h" @@ -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); + } } /**