[Skiboot] [PATCH 05/15] libflash/libffs: ffs_close() should use ffs_hdr_free()
Cyril Bur
cyril.bur at au1.ibm.com
Thu Mar 15 16:58:17 AEDT 2018
Signed-off-by: Cyril Bur <cyril.bur at au1.ibm.com>
---
libflash/libffs.c | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/libflash/libffs.c b/libflash/libffs.c
index abc61389..4f1852ff 100644
--- a/libflash/libffs.c
+++ b/libflash/libffs.c
@@ -440,14 +440,32 @@ out:
return rc;
}
-void ffs_close(struct ffs_handle *ffs)
+static void __hdr_free(struct ffs_hdr *hdr)
{
struct ffs_entry *ent, *next;
- list_for_each_safe(&ffs->hdr.entries, ent, next, list) {
+ list_for_each_safe(&hdr->entries, ent, next, list) {
list_del(&ent->list);
free(ent);
}
+ if (hdr->side) {
+ hdr->side->side = NULL;
+ ffs_hdr_free(hdr->side);
+ }
+}
+
+int ffs_hdr_free(struct ffs_hdr *hdr)
+{
+ printf("Freeing hdr\n");
+ __hdr_free(hdr);
+ free(hdr);
+
+ return 0;
+}
+
+void ffs_close(struct ffs_handle *ffs)
+{
+ __hdr_free(&ffs->hdr);
if (ffs->cache)
free(ffs->cache);
@@ -903,24 +921,6 @@ int ffs_hdr_new(uint32_t block_size, uint32_t block_count, struct ffs_hdr **r)
return 0;
}
-int ffs_hdr_free(struct ffs_hdr *hdr)
-{
- struct ffs_entry *ent, *next;
-
- printf("Freeing hdr\n");
- list_for_each_safe(&hdr->entries, ent, next, list) {
- list_del(&ent->list);
- free(ent);
- }
- if (hdr->side) {
- hdr->side->side = NULL;
- ffs_hdr_free(hdr->side);
- }
- free(hdr);
-
- return 0;
-}
-
int ffs_update_act_size(struct ffs_handle *ffs, uint32_t part_idx,
uint32_t act_size)
{
--
2.16.2
More information about the Skiboot
mailing list