diff options
Diffstat (limited to 'src/H5F.c')
-rw-r--r-- | src/H5F.c | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -2912,9 +2912,12 @@ done: * * Modifications: * - * Robb Matzke, 1998-10-14 + * Robb Matzke, 1998-10-14 * The ref count for the child is decremented by calling H5F_close(). * + * Pedro Vicente, <pvn@ncsa.uiuc.edu> 22 Aug 2002 + * Added `id to name' support. + * *------------------------------------------------------------------------- */ static herr_t @@ -2954,6 +2957,11 @@ H5F_unmount(H5G_entry_t *loc, const char *name) parent = child->mtab.parent; for (i=0; i<parent->mtab.nmounts; i++) { if (parent->mtab.child[i].file==child) { + + /* Search the symbol table entry list and replace names through group IDs */ + if (H5G_replace_name( H5G_UNKNOWN, loc, name, NULL, OP_UNMOUNT )<0) + HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to replace name "); + /* Unmount the child */ parent->mtab.nmounts -= 1; H5G_close(parent->mtab.child[i].group); @@ -3022,6 +3030,9 @@ done: * Tuesday, October 6, 1998 * * Modifications: + * + * Pedro Vicente, <pvn@ncsa.uiuc.edu> 22 Aug 2002 + * Added `id to name' support. * *------------------------------------------------------------------------- */ @@ -3032,6 +3043,7 @@ H5F_mountpoint(H5G_entry_t *find/*in,out*/) int lt, rt, md=(-1), cmp; H5G_entry_t *ent = NULL; herr_t ret_value=SUCCEED; /* Return value */ + char *tmp; FUNC_ENTER_NOAPI(H5F_mountpoint, FAIL); @@ -3063,7 +3075,9 @@ H5F_mountpoint(H5G_entry_t *find/*in,out*/) /* Copy root info over to ENT */ if (0==cmp) { ent = H5G_entof(parent->mtab.child[md].file->shared->root_grp); + tmp = find->name; *find = *ent; + find->name = tmp; parent = ent->file; } } while (!cmp); @@ -3086,6 +3100,9 @@ done: * * Modifications: * + * Pedro Vicente, <pvn@ncsa.uiuc.edu> 22 Aug 2002 + * Added `id to name' support. + * *------------------------------------------------------------------------- */ herr_t @@ -3114,6 +3131,11 @@ H5Fmount(hid_t loc_id, const char *name, hid_t child_id, hid_t plist_id) if (H5F_mount(loc, name, child, plist_id)<0) HGOTO_ERROR(H5E_FILE, H5E_MOUNT, FAIL, "unable to mount file"); + /* Search the symbol table entry list and replace names through group IDs */ + /* We pass H5G_UNKNOWN as object type; search all IDs */ + if (H5G_replace_name( H5G_UNKNOWN, loc, name, NULL, OP_MOUNT )<0) + HRETURN_ERROR(H5E_FILE, H5E_MOUNT, FAIL, "unable to replace name "); + done: FUNC_LEAVE(ret_value); } |