summaryrefslogtreecommitdiffstats
path: root/src/H5G.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5G.c')
-rw-r--r--src/H5G.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/H5G.c b/src/H5G.c
index 3864dcf..2aa045d 100644
--- a/src/H5G.c
+++ b/src/H5G.c
@@ -1019,6 +1019,11 @@ H5G_basename(const char *name, size_t *size_p)
* FOLLOW_SLINK is false and the last component of the name is a
* symbolic link then that link is not followed. At most NLINKS
* are followed and the next link generates an error.
+ *
+ * Mounted files are handled by calling H5F_mountpoint() after
+ * each step of the translation. If the input argument to that
+ * function is a mount point then the argument shall be replaced
+ * with information about the root group of the mounted file.
*
* Errors:
*
@@ -1075,7 +1080,6 @@ H5G_namei(H5G_entry_t *loc_ent, const char *name, const char **rest/*out*/,
HDmemset(grp_ent, 0, sizeof(H5G_entry_t));
H5F_addr_undef(&(grp_ent->header));
-
/* traverse the name */
while ((name = H5G_component(name, &nchars)) && *name) {
if (rest) *rest = name;
@@ -1132,6 +1136,7 @@ H5G_namei(H5G_entry_t *loc_ent, const char *name, const char **rest/*out*/,
}
/* next component */
+ H5F_mountpoint(obj_ent/*in,out*/);
name += nchars;
}
if (rest) *rest = name; /*final null */
@@ -1737,10 +1742,11 @@ H5G_insert(H5G_entry_t *loc, const char *name, H5G_entry_t *ent)
* Insert the object into a symbol table.
*/
if (H5O_link(ent, 1) < 0) {
- HRETURN_ERROR(H5E_SYM, H5E_LINK, FAIL, "link inc failure");
+ HRETURN_ERROR(H5E_SYM, H5E_LINK, FAIL,
+ "unable to increment hard link count");
}
if (H5G_stab_insert(&grp, rest, ent) < 0) {
- HRETURN_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "can't insert");
+ HRETURN_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to insert name");
}
FUNC_LEAVE(SUCCEED);
}