X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/a36758a5018f6a3792c164cd2a313d4f61b7111e..f4c2f90eddf42f1cc73a2a12ff1435cd4357fa60:/lunaix-os/kernel/fs/iso9660/mount.c diff --git a/lunaix-os/kernel/fs/iso9660/mount.c b/lunaix-os/kernel/fs/iso9660/mount.c index 5d7bb81..35ebb4b 100644 --- a/lunaix-os/kernel/fs/iso9660/mount.c +++ b/lunaix-os/kernel/fs/iso9660/mount.c @@ -11,7 +11,7 @@ struct cake_pile* drec_cache_pile; extern void iso9660_init_inode(struct v_superblock* vsb, struct v_inode* inode); -uint32_t +u32_t iso9660_rd_capacity(struct v_superblock* vsb) { struct iso_superblock* isovsb = (struct iso_superblock*)vsb->data; @@ -57,8 +57,8 @@ iso9660_mount(struct v_superblock* vsb, struct v_dnode* mount_point) vsb->ops.read_capacity = iso9660_rd_capacity; struct v_inode* rootino = vfs_i_alloc(vsb); - struct iso_drecord* dir = - iso9660_get_drecord((struct iso_var_mdu*)vprim->root_record); + struct iso_var_mdu* mdu = (struct iso_var_mdu*)vprim->root_record; + struct iso_drecord* dir = iso9660_get_drecord(mdu); if (!dir) { vfree(isovsb); @@ -67,7 +67,7 @@ iso9660_mount(struct v_superblock* vsb, struct v_dnode* mount_point) } struct iso_drecache drecache; - iso9660_fill_drecache(&drecache, dir); + iso9660_fill_drecache(&drecache, dir, mdu->len); if ((errno = iso9660_fill_inode(rootino, &drecache, 0)) < 0) { vfree(isovsb); @@ -92,7 +92,7 @@ done: int iso9660_unmount(struct v_superblock* vsb) { - // TODO clean up + vfree(vsb->data); } void