X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=fs%2F9p%2Fv9fs.c;h=418c3743fdee85c89452f9f6c0dda13dbb404007;hb=433fbe4c8837e3cc2ba6a6374edf28737d01a2e9;hp=13bdbbab4387a38809b512efb9241a2d71fd05df;hpb=905ec87e93bc9e01b15c60035cd6a50c636cbaef;p=linux-2.6-omap-h63xx.git diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c index 13bdbbab438..418c3743fde 100644 --- a/fs/9p/v9fs.c +++ b/fs/9p/v9fs.c @@ -266,7 +266,7 @@ v9fs_session_init(struct v9fs_session_info *v9ses, v9ses->remotename = __getname(); if (!v9ses->remotename) { - putname(v9ses->name); + __putname(v9ses->name); return -ENOMEM; } @@ -303,7 +303,13 @@ v9fs_session_init(struct v9fs_session_info *v9ses, goto SessCleanUp; }; - v9ses->transport = trans_proto; + v9ses->transport = kmalloc(sizeof(*v9ses->transport), GFP_KERNEL); + if (!v9ses->transport) { + retval = -ENOMEM; + goto SessCleanUp; + } + + memmove(v9ses->transport, trans_proto, sizeof(*v9ses->transport)); if ((retval = v9ses->transport->init(v9ses, dev_name, data)) < 0) { eprintk(KERN_ERR, "problem initializing transport\n"); @@ -405,8 +411,8 @@ void v9fs_session_close(struct v9fs_session_info *v9ses) if (v9ses->transport) v9ses->transport->close(v9ses->transport); - putname(v9ses->name); - putname(v9ses->remotename); + __putname(v9ses->name); + __putname(v9ses->remotename); } /**