diff options
author | Frans Kaashoek <[email protected]> | 2019-09-10 12:30:10 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2019-09-10 12:30:10 -0400 |
commit | 7e6c37e67e6da62e02089fc3292569103b7e94b3 (patch) | |
tree | 8b3f2e762f1f0a32a4641d240d30b155af6ab34a /kernel/sysfile.c | |
parent | 035cca95fe87c67ee1e33b9edfb2d87e24476fa8 (diff) | |
download | xv6-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.c | 4 |
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(); |