diff options
-rw-r--r-- | libnetfs/dir-lookup.c | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/libnetfs/dir-lookup.c b/libnetfs/dir-lookup.c index 9a92c29a..caeb1516 100644 --- a/libnetfs/dir-lookup.c +++ b/libnetfs/dir-lookup.c @@ -30,7 +30,7 @@ #include "misc.h" error_t -netfs_S_dir_lookup (struct protid *diruser, +netfs_S_dir_lookup (struct protid *dircred, char *filename, int flags, mode_t mode, @@ -52,7 +52,7 @@ netfs_S_dir_lookup (struct protid *diruser, struct protid *newpi = NULL; struct iouser *user; - if (!diruser) + if (!dircred) return EOPNOTSUPP; create = (flags & O_CREAT); @@ -62,7 +62,7 @@ netfs_S_dir_lookup (struct protid *diruser, while (*filename == '/') filename++; - /* Preserve the path relative to diruser->po->path. */ + /* Preserve the path relative to dircred->po->path. */ relpath = strdup (filename); if (! relpath) return ENOMEM; @@ -79,13 +79,13 @@ netfs_S_dir_lookup (struct protid *diruser, { /* Set things up in the state expected by the code from gotit: on. */ dnp = 0; - np = diruser->po->np; + np = dircred->po->np; pthread_mutex_lock (&np->lock); netfs_nref (np); goto gotit; } - dnp = diruser->po->np; + dnp = dircred->po->np; pthread_mutex_lock (&dnp->lock); netfs_nref (dnp); /* acquire a reference for later netfs_nput */ @@ -120,13 +120,13 @@ netfs_S_dir_lookup (struct protid *diruser, retry_lookup: - if ((dnp == netfs_root_node || dnp == diruser->po->shadow_root) + if ((dnp == netfs_root_node || dnp == dircred->po->shadow_root) && filename[0] == '.' && filename[1] == '.' && filename[2] == '\0') - if (dnp == diruser->po->shadow_root) + if (dnp == dircred->po->shadow_root) /* We're at the root of a shadow tree. */ { *do_retry = FS_RETRY_REAUTH; - *retry_port = diruser->po->shadow_root_parent; + *retry_port = dircred->po->shadow_root_parent; *retry_port_type = MACH_MSG_TYPE_COPY_SEND; if (lastcomp && mustbedir) /* Trailing slash. */ strcpy (retry_name, "/"); @@ -136,13 +136,13 @@ netfs_S_dir_lookup (struct protid *diruser, pthread_mutex_unlock (&dnp->lock); goto out; } - else if (diruser->po->root_parent != MACH_PORT_NULL) - /* We're at a real translator root; even if DIRUSER->po has a + else if (dircred->po->root_parent != MACH_PORT_NULL) + /* We're at a real translator root; even if DIRCRED->po has a shadow root, we can get here if its in a directory that was renamed out from under it... */ { *do_retry = FS_RETRY_REAUTH; - *retry_port = diruser->po->root_parent; + *retry_port = dircred->po->root_parent; *retry_port_type = MACH_MSG_TYPE_COPY_SEND; if (lastcomp && mustbedir) /* Trailing slash. */ strcpy (retry_name, "/"); @@ -161,7 +161,7 @@ netfs_S_dir_lookup (struct protid *diruser, } else /* Attempt a lookup on the next pathname component. */ - err = netfs_attempt_lookup (diruser->user, dnp, filename, &np); + err = netfs_attempt_lookup (dircred->user, dnp, filename, &np); /* At this point, DNP is unlocked */ @@ -175,7 +175,7 @@ netfs_S_dir_lookup (struct protid *diruser, mode &= ~(S_IFMT | S_ISPARE | S_ISVTX); mode |= S_IFREG; pthread_mutex_lock (&dnp->lock); - err = netfs_attempt_create_file (diruser->user, dnp, + err = netfs_attempt_create_file (dircred->user, dnp, filename, mode, &np); /* If someone has already created the file (between our lookup @@ -194,7 +194,7 @@ netfs_S_dir_lookup (struct protid *diruser, if (err) goto out; - err = netfs_validate_stat (np, diruser->user); + err = netfs_validate_stat (np, dircred->user); if (err) goto out; @@ -216,7 +216,7 @@ netfs_S_dir_lookup (struct protid *diruser, struct node *np = cookie1; error_t err; - err = netfs_validate_stat (np, diruser->user); + err = netfs_validate_stat (np, dircred->user); if (err) return err; @@ -255,7 +255,7 @@ netfs_S_dir_lookup (struct protid *diruser, if (! err) { newpi = netfs_make_protid (netfs_make_peropen (dnp, 0, - diruser->po), + dircred->po), user); if (! newpi) { @@ -275,9 +275,9 @@ netfs_S_dir_lookup (struct protid *diruser, translators. */ register_translator = np->transbox.active == MACH_PORT_NULL; - err = fshelp_fetch_root (&np->transbox, diruser->po, + err = fshelp_fetch_root (&np->transbox, dircred->po, dirport, - diruser->user, + dircred->user, lastcomp ? flags : 0, ((np->nn_translated & S_IPTRANS) ? _netfs_translator_callback1 @@ -320,11 +320,11 @@ netfs_S_dir_lookup (struct protid *diruser, translator_path[end - filename_start] = '\0'; } - if (diruser->po->path == NULL || !strcmp (diruser->po->path,".")) - /* diruser is the root directory. */ + if (dircred->po->path == NULL || !strcmp (dircred->po->path,".")) + /* dircred is the root directory. */ complete_path = translator_path; else - asprintf (&complete_path, "%s/%s", diruser->po->path, translator_path); + asprintf (&complete_path, "%s/%s", dircred->po->path, translator_path); err = fshelp_set_active_translator (&newpi->pi, complete_path, @@ -370,7 +370,7 @@ netfs_S_dir_lookup (struct protid *diruser, newnamelen = nextnamelen + linklen + 1 + 1; linkbuf = alloca (newnamelen); - err = netfs_attempt_readlink (diruser->user, np, linkbuf); + err = netfs_attempt_readlink (dircred->user, np, linkbuf); if (err) goto out; @@ -433,25 +433,25 @@ netfs_S_dir_lookup (struct protid *diruser, if (mustbedir) { - netfs_validate_stat (np, diruser->user); + netfs_validate_stat (np, dircred->user); if (!S_ISDIR (np->nn_stat.st_mode)) { err = ENOTDIR; goto out; } } - err = netfs_check_open_permissions (diruser->user, np, + err = netfs_check_open_permissions (dircred->user, np, flags, newnode); if (err) goto out; flags &= ~OPENONLY_STATE_MODES; - err = iohelp_dup_iouser (&user, diruser->user); + err = iohelp_dup_iouser (&user, dircred->user); if (err) goto out; - newpi = netfs_make_protid (netfs_make_peropen (np, flags, diruser->po), + newpi = netfs_make_protid (netfs_make_peropen (np, flags, dircred->po), user); if (! newpi) { @@ -461,16 +461,16 @@ netfs_S_dir_lookup (struct protid *diruser, } free (newpi->po->path); - if (diruser->po->path == NULL || !strcmp (diruser->po->path,".")) + if (dircred->po->path == NULL || !strcmp (dircred->po->path,".")) { - /* diruser is the root directory. */ + /* dircred is the root directory. */ newpi->po->path = relpath; relpath = NULL; /* Do not free relpath. */ } else { newpi->po->path = NULL; - asprintf (&newpi->po->path, "%s/%s", diruser->po->path, relpath); + asprintf (&newpi->po->path, "%s/%s", dircred->po->path, relpath); } if (! newpi->po->path) |