summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libdiskfs/diskfs.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h
index f62ca32d..e92158f4 100644
--- a/libdiskfs/diskfs.h
+++ b/libdiskfs/diskfs.h
@@ -57,10 +57,13 @@ struct peropen
struct node *np;
- mach_port_t dotdotport; /* dotdot from ROOT through this peropen */
- unsigned depth; /* How many levels there are between
- DOTDOTPORT and us; if DEPTH == 0,
- DOTDOTPORT is our parent. */
+ /* The parent of the translator's root node. */
+ mach_port_t root_parent;
+
+ /* If this node is in a shadow tree, the parent of its root. */
+ mach_port_t shadow_root_parent;
+ /* If in a shadow tree, its root node in this translator. */
+ struct node *shadow_root;
};
/* A unique one of these exists for each node currently in use (and
@@ -785,10 +788,6 @@ struct node *diskfs_make_node (struct disknode *dn);
locked, so don't lock it or add a reference to it.
(SPEC_DOTDOT will not be given with CREATE.)
- DEPTH is the number of nodes between DP and the filesystem root.
- If NEW_DEPTH is non-zero, then for a non-error return, the depth of the
- resulting node NP is returned in it.
-
Return ENOTDIR if DP is not a directory.
Return EACCES if CRED isn't allowed to search DP.
Return EACCES if completing the operation will require writing
@@ -801,8 +800,7 @@ struct node *diskfs_make_node (struct disknode *dn);
*/
error_t diskfs_lookup (struct node *dp, char *name, enum lookup_type type,
struct node **np, struct dirstat *ds,
- struct protid *cred,
- unsigned depth, unsigned *new_depth);
+ struct protid *cred);
/* Add NP to directory DP under the name NAME. This will only be
called after an unsuccessful call to diskfs_lookup of type CREATE
@@ -864,9 +862,11 @@ error_t diskfs_start_protid (struct peropen *po, struct protid **cred);
void diskfs_finish_protid (struct protid *cred, struct iouser *user);
/* Create and return a new peropen structure on node NP with open
- flags FLAGS. */
+ flags FLAGS. The initial values for the root_parent, shadow_root, and
+ shadow_root_parent fields are copied from CONTEXT if it's non-zero,
+ otherwise zerod. */
struct peropen *diskfs_make_peropen (struct node *np, int flags,
- mach_port_t dotdotnode, unsigned depth);
+ struct peropen *context);
/* Called when a protid CRED has no more references. (Because references\
to protids are maintained by the port management library, this is