[PATCH] v9fs: fix bug in atomic create open fix

Lucho's atomic create+open fix had a bug in the super block initialization
causing all mounts to fail. He was freeing an fcall too early. This patch
fixes that oversight.

Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Eric Van Hensbergen and committed by Linus Torvalds 74b8054c 6a3124a3

+5 -2
+5 -2
fs/9p/vfs_super.c
··· 160 160 v9fs_t_clunk(v9ses, newfid); 161 161 } else { 162 162 /* Setup the Root Inode */ 163 - kfree(fcall); 164 163 root_fid = v9fs_fid_create(v9ses, newfid); 165 164 if (root_fid == NULL) { 166 165 retval = -ENOMEM; ··· 167 168 } 168 169 169 170 retval = v9fs_fid_insert(root_fid, root); 170 - if (retval < 0) 171 + if (retval < 0) { 172 + kfree(fcall); 171 173 goto put_back_sb; 174 + } 172 175 173 176 root_fid->qid = fcall->params.rstat.stat.qid; 174 177 root->d_inode->i_ino = 175 178 v9fs_qid2ino(&fcall->params.rstat.stat.qid); 176 179 v9fs_stat2inode(&fcall->params.rstat.stat, root->d_inode, sb); 177 180 } 181 + 182 + kfree(fcall); 178 183 179 184 if (stat_result < 0) { 180 185 retval = stat_result;