提交 7f49b2ed 创建 作者: Frans Kaashoek's avatar Frans Kaashoek

Merge branch 'scale' of ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6 into scale

Conflicts: bonsai.c
...@@ -44,7 +44,6 @@ alloc_node(struct kv *kv, node_t *l, node_t *r) ...@@ -44,7 +44,6 @@ alloc_node(struct kv *kv, node_t *l, node_t *r)
static void static void
free_node(void *p) free_node(void *p)
{ {
// printf("free_node: 0x%lx\n", (long) n);
kmfree(p); kmfree(p);
} }
......
...@@ -285,11 +285,14 @@ sys_open(void) ...@@ -285,11 +285,14 @@ sys_open(void)
if((ip = create(path, T_FILE, 0, 0)) == 0) if((ip = create(path, T_FILE, 0, 0)) == 0)
return -1; return -1;
} else { } else {
retry:
if((ip = namei(path)) == 0) if((ip = namei(path)) == 0)
return -1; return -1;
ilock(ip, 0); ilock(ip, 0);
if(ip->type == 0) if(ip->type == 0) {
panic("open"); iunlockput(ip);
goto retry;
}
if(ip->type == T_DIR) { if(ip->type == T_DIR) {
if (omode != O_RDONLY){ if (omode != O_RDONLY){
iunlockput(ip); iunlockput(ip);
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论