summaryrefslogtreecommitdiff
path: root/libdiskfs
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1994-09-12 03:30:54 +0000
committerRoland McGrath <roland@gnu.org>1994-09-12 03:30:54 +0000
commitd76ce01919eccc1505161ea5b331ab7c913ce2b6 (patch)
tree18686d9747cc3fa5155cf70054c10c0b30261b5b /libdiskfs
parentfab6daf09bf15979e19826d76a336dd8f2f7985e (diff)
Formerly dir-lookup.c.~7~
Diffstat (limited to 'libdiskfs')
-rw-r--r--libdiskfs/dir-lookup.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c
index 0eaba6c3..e764cc3c 100644
--- a/libdiskfs/dir-lookup.c
+++ b/libdiskfs/dir-lookup.c
@@ -37,7 +37,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
int nsymlink = 0;
char *nextname;
int nextnamelen;
- int error = 0;
+ error_t error = 0;
char *pathbuf = 0;
int pathbuflen = 0;
int newnamelen;
@@ -224,10 +224,11 @@ diskfs_S_dir_lookup (struct protid *dircred,
lastcomp ? flags : flags & ~O_NOLINK,
retry, retryname, returned_port);
- /* If we got MACH_SEND_INVALID_DEST, then the server is dead.
- Zero out the old control port and try everything again. */
+ /* If we got MACH_SEND_INVALID_DEST or MIG_SERVER_DIED, then
+ the server is dead. Zero out the old control port and try
+ everything again. */
- if (error == MACH_SEND_INVALID_DEST)
+ if (error == MACH_SEND_INVALID_DEST || error == MIG_SERVER_DIED)
{
mutex_lock (&np->translator.lock);
@@ -348,10 +349,10 @@ diskfs_S_dir_lookup (struct protid *dircred,
if (pathbuf[0] == '/')
{
- /* Punt to the caller */
+ /* Punt to the caller. */
*retry = FS_RETRY_MAGICAL;
*returned_port = MACH_PORT_NULL;
- strcpy (retryname, pathbuf + nextnamelen);
+ strcpy (retryname, pathbuf);
goto out;
}