From 499429760650018216eb8d0b35067cf2c5c4520b Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Fri, 18 May 2012 14:32:36 +0300 Subject: UBIFS: make ubifs_lpt_init clean-up in case of failure Most functions in UBIFS follow the following designn pattern: if the function allocates multiple resources, and failss at some point, it frees what it has allocated and returns an error. So the caller can rely on the fact that the callee has cleaned up everything after own failure. Signed-off-by: Artem Bityutskiy Acked-by: Sidney Amani --- fs/ubifs/lpt.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'fs/ubifs/lpt.c') diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c index 2054e8171fd4..b4280c44949c 100644 --- a/fs/ubifs/lpt.c +++ b/fs/ubifs/lpt.c @@ -1740,16 +1740,20 @@ int ubifs_lpt_init(struct ubifs_info *c, int rd, int wr) if (rd) { err = lpt_init_rd(c); if (err) - return err; + goto out_err; } if (wr) { err = lpt_init_wr(c); if (err) - return err; + goto out_err; } return 0; + +out_err: + ubifs_lpt_free(c, 0); + return err; } /** -- cgit v1.2.3-58-ga151