summaryrefslogtreecommitdiff
path: root/firmware/common/rb_namespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/common/rb_namespace.c')
-rw-r--r--firmware/common/rb_namespace.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/firmware/common/rb_namespace.c b/firmware/common/rb_namespace.c
index 85f647c474..5069a8681e 100644
--- a/firmware/common/rb_namespace.c
+++ b/firmware/common/rb_namespace.c
@@ -74,7 +74,7 @@ static void unmount_item(int item)
74 if (!state) 74 if (!state)
75 return; 75 return;
76 76
77 if (state & NSITEM_CONTENTS) 77 if (item == ROOT_CONTENTS_INDEX && state & NSITEM_CONTENTS)
78 { 78 {
79 fileobj_unmount(root_bindp); 79 fileobj_unmount(root_bindp);
80 root_bindp = NULL; 80 root_bindp = NULL;
@@ -139,18 +139,19 @@ int root_mount_path(const char *path, unsigned int flags)
139 int root_state = NSITEM_MOUNTED | (flags & (NSITEM_HIDDEN|NSITEM_CONTENTS)); 139 int root_state = NSITEM_MOUNTED | (flags & (NSITEM_HIDDEN|NSITEM_CONTENTS));
140 set_root_item_state(ROOT_CONTENTS_INDEX, root_state); 140 set_root_item_state(ROOT_CONTENTS_INDEX, root_state);
141 flags |= state; /* preserve the state of the mounted volume */ 141 flags |= state; /* preserve the state of the mounted volume */
142 if (!folder) 142
143 { 143 if (folder)
144 folder = "";
145 }
146 else
147 { 144 {
145 while (*folder == PATH_SEPCH)
146 folder++;
148 /*if a folder has been enumerated don't mark the whole volume */ 147 /*if a folder has been enumerated don't mark the whole volume */
149 if (folder[0] != '\0' && folder[1] != '\0') 148 if (folder[0] != '\0')
150 flags &= ~NSITEM_CONTENTS; 149 flags &= ~NSITEM_CONTENTS;
151 150 else
151 folder = NULL; /*Ensure separator is added by path_append */
152 } 152 }
153 snprintf(root_realpath_internal(), ROOT_MAX_REALPATH,"%s%s", volname, folder); 153
154 path_append(root_realpath_internal(), volname, folder, ROOT_MAX_REALPATH);
154 } 155 }
155 else if (state) /* error volume already mounted */ 156 else if (state) /* error volume already mounted */
156 return -EBUSY; 157 return -EBUSY;