diff options
| -rw-r--r-- | fs/9p/fcall.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/fs/9p/fcall.c b/fs/9p/fcall.c index 71742ba150c4..6f2617820a4e 100644 --- a/fs/9p/fcall.c +++ b/fs/9p/fcall.c | |||
| @@ -98,23 +98,20 @@ v9fs_t_attach(struct v9fs_session_info *v9ses, char *uname, char *aname, | |||
| 98 | static void v9fs_t_clunk_cb(void *a, struct v9fs_fcall *tc, | 98 | static void v9fs_t_clunk_cb(void *a, struct v9fs_fcall *tc, |
| 99 | struct v9fs_fcall *rc, int err) | 99 | struct v9fs_fcall *rc, int err) |
| 100 | { | 100 | { |
| 101 | int fid; | 101 | int fid, id; |
| 102 | struct v9fs_session_info *v9ses; | 102 | struct v9fs_session_info *v9ses; |
| 103 | 103 | ||
| 104 | if (err) | 104 | id = 0; |
| 105 | return; | ||
| 106 | |||
| 107 | fid = tc->params.tclunk.fid; | 105 | fid = tc->params.tclunk.fid; |
| 108 | kfree(tc); | 106 | if (rc) |
| 109 | 107 | id = rc->id; | |
| 110 | if (!rc) | ||
| 111 | return; | ||
| 112 | |||
| 113 | v9ses = a; | ||
| 114 | if (rc->id == RCLUNK) | ||
| 115 | v9fs_put_idpool(fid, &v9ses->fidpool); | ||
| 116 | 108 | ||
| 109 | kfree(tc); | ||
| 117 | kfree(rc); | 110 | kfree(rc); |
| 111 | if (id == RCLUNK) { | ||
| 112 | v9ses = a; | ||
| 113 | v9fs_put_idpool(fid, &v9ses->fidpool); | ||
| 114 | } | ||
| 118 | } | 115 | } |
| 119 | 116 | ||
| 120 | /** | 117 | /** |
