status_t Inode::CreateFileCache() { TRACE("Inode::CreateFileCache()\n"); if (fCache != NULL) return B_OK; TRACE("Inode::CreateFileCache(): Creating file cache: %" B_PRIu32 ", %" B_PRIdINO ", %" B_PRIdOFF "\n", fVolume->ID(), ID(), Size()); fCache = file_cache_create(fVolume->ID(), ID(), Size()); if (fCache == NULL) { ERROR("Inode::CreateFileCache(): Failed to create file cache\n"); return B_ERROR; } fMap = file_map_create(fVolume->ID(), ID(), Size()); if (fMap == NULL) { ERROR("Inode::CreateFileCache(): Failed to create file map\n"); file_cache_delete(fCache); fCache = NULL; return B_ERROR; } TRACE("Inode::CreateFileCache(): Done\n"); return B_OK; }
Inode::~Inode() { TRACE("Inode destructor\n"); file_cache_delete(FileCache()); file_map_delete(Map()); TRACE("Inode destructor: Done\n"); }
~DataAccessor() { file_cache_delete(fFileCache); delete fReader; delete fDataReader; mutex_destroy(&fLock); }
Inode::~Inode() { TRACE("Inode destructor\n"); if (fCached) { TRACE("Deleting the file cache and file map\n"); file_cache_delete(FileCache()); file_map_delete(Map()); } TRACE("Inode destructor: Done\n"); }
void Inode::DeleteFileCache() { TRACE("Inode::DeleteFileCache()\n"); if (fCache == NULL) return; file_cache_delete(fCache); file_map_delete(fMap); fCache = NULL; fMap = NULL; }
status_t Inode::DisableFileCache() { TRACE("Inode::DisableFileCache()\n"); if (!fCached) return B_OK; file_cache_delete(FileCache()); file_map_delete(Map()); fCached = false; return B_OK; }
static status_t fs_release_vnode(fs_volume* /*_volume*/, fs_vnode* _node, bool /*reenter*/) { iso9660_inode* node = (iso9660_inode*)_node->private_node; TRACE(("fs_release_vnode - ENTER (%p)\n", node)); if (node->id != ISO_ROOTNODE_ID) { free(node->name); free(node->attr.slName); if (node->cache != NULL) file_cache_delete(node->cache); free(node); } TRACE(("fs_release_vnode - EXIT\n")); return B_OK; }