summaryrefslogtreecommitdiff
path: root/kernel/sysfile.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2019-09-10 12:30:10 -0400
committerFrans Kaashoek <[email protected]>2019-09-10 12:30:10 -0400
commit7e6c37e67e6da62e02089fc3292569103b7e94b3 (patch)
tree8b3f2e762f1f0a32a4641d240d30b155af6ab34a /kernel/sysfile.c
parent035cca95fe87c67ee1e33b9edfb2d87e24476fa8 (diff)
downloadxv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.tar.gz
xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.tar.bz2
xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.zip
Support exit status for exit/wait
One test case for returning a exit status Passes usertests, but haven't used it to simplify tests
Diffstat (limited to 'kernel/sysfile.c')
-rw-r--r--kernel/sysfile.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/sysfile.c b/kernel/sysfile.c
index 23a9540..5b09d93 100644
--- a/kernel/sysfile.c
+++ b/kernel/sysfile.c
@@ -246,6 +246,7 @@ create(char *path, short type, short major, short minor)
if((dp = nameiparent(path, name)) == 0)
return 0;
+
ilock(dp);
if((ip = dirlookup(dp, name, 0)) != 0){
@@ -289,8 +290,9 @@ sys_open(void)
int fd, omode;
struct file *f;
struct inode *ip;
+ int n;
- if(argstr(0, path, MAXPATH) < 0 || argint(1, &omode) < 0)
+ if((n = argstr(0, path, MAXPATH)) < 0 || argint(1, &omode) < 0)
return -1;
begin_op();