| .. | .. | 
|---|
| 833 | 833 |  		INIT_LIST_HEAD(&c->jheads[i].buds_list); | 
|---|
| 834 | 834 |  		err = ubifs_wbuf_init(c, &c->jheads[i].wbuf); | 
|---|
| 835 | 835 |  		if (err) | 
|---|
| 836 |  | -			return err;  | 
|---|
 | 836 | +			goto out_wbuf;  | 
|---|
| 837 | 837 |   | 
|---|
| 838 | 838 |  		c->jheads[i].wbuf.sync_callback = &bud_wbuf_callback; | 
|---|
| 839 | 839 |  		c->jheads[i].wbuf.jhead = i; | 
|---|
| .. | .. | 
|---|
| 841 | 841 |  		c->jheads[i].log_hash = ubifs_hash_get_desc(c); | 
|---|
| 842 | 842 |  		if (IS_ERR(c->jheads[i].log_hash)) { | 
|---|
| 843 | 843 |  			err = PTR_ERR(c->jheads[i].log_hash); | 
|---|
| 844 |  | -			goto out;  | 
|---|
 | 844 | +			goto out_log_hash;  | 
|---|
| 845 | 845 |  		} | 
|---|
| 846 | 846 |  	} | 
|---|
| 847 | 847 |   | 
|---|
| .. | .. | 
|---|
| 854 | 854 |   | 
|---|
| 855 | 855 |  	return 0; | 
|---|
| 856 | 856 |   | 
|---|
| 857 |  | -out:  | 
|---|
| 858 |  | -	while (i--)  | 
|---|
 | 857 | +out_log_hash:  | 
|---|
 | 858 | +	kfree(c->jheads[i].wbuf.buf);  | 
|---|
 | 859 | +	kfree(c->jheads[i].wbuf.inodes);  | 
|---|
 | 860 | +  | 
|---|
 | 861 | +out_wbuf:  | 
|---|
 | 862 | +	while (i--) {  | 
|---|
 | 863 | +		kfree(c->jheads[i].wbuf.buf);  | 
|---|
 | 864 | +		kfree(c->jheads[i].wbuf.inodes);  | 
|---|
| 859 | 865 |  		kfree(c->jheads[i].log_hash); | 
|---|
 | 866 | +	}  | 
|---|
 | 867 | +	kfree(c->jheads);  | 
|---|
 | 868 | +	c->jheads = NULL;  | 
|---|
| 860 | 869 |   | 
|---|
| 861 | 870 |  	return err; | 
|---|
| 862 | 871 |  } | 
|---|