9p: Fix possible memleak in v9fs_inode_from fid.

Add missing p9stat_free in v9fs_inode_from_fid to avoid
any possible leaks.

Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>

authored by

Abhishek Kulkarni and committed by
Eric Van Hensbergen
02bc3567 0e15597e

+4 -9
+4 -9
fs/9p/vfs_inode.c
··· 344 344 345 345 ret = NULL; 346 346 st = p9_client_stat(fid); 347 - if (IS_ERR(st)) { 348 - err = PTR_ERR(st); 349 - st = NULL; 350 - goto error; 351 - } 347 + if (IS_ERR(st)) 348 + return ERR_CAST(st); 352 349 353 350 umode = p9mode2unixmode(v9ses, st->mode); 354 351 ret = v9fs_get_inode(sb, umode); 355 352 if (IS_ERR(ret)) { 356 353 err = PTR_ERR(ret); 357 - ret = NULL; 358 354 goto error; 359 355 } 360 356 361 357 v9fs_stat2inode(st, ret, sb); 362 358 ret->i_ino = v9fs_qid2ino(&st->qid); 359 + p9stat_free(st); 363 360 kfree(st); 364 361 return ret; 365 362 366 363 error: 364 + p9stat_free(st); 367 365 kfree(st); 368 - if (ret) 369 - iput(ret); 370 - 371 366 return ERR_PTR(err); 372 367 } 373 368