summaryrefslogtreecommitdiff
path: root/kernel/fs.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2022-08-23 11:01:06 -0400
committerFrans Kaashoek <[email protected]>2022-08-23 11:01:06 -0400
commitccb7bd14c7303a77f8f99928e2297ddd815674b1 (patch)
treeac9fc9f6773c87d5adc8ded3bc8bc3a0145e85cd /kernel/fs.c
parent4cd4d194b8827af4971a81ad28968499925f884f (diff)
parent8621be8f3d105cd73ffbc681f9810d04b083b0ae (diff)
downloadxv6-labs-ccb7bd14c7303a77f8f99928e2297ddd815674b1.tar.gz
xv6-labs-ccb7bd14c7303a77f8f99928e2297ddd815674b1.tar.bz2
xv6-labs-ccb7bd14c7303a77f8f99928e2297ddd815674b1.zip
Merge branch 'riscv' into uvm-perm
Diffstat (limited to 'kernel/fs.c')
-rw-r--r--kernel/fs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/fs.c b/kernel/fs.c
index 247a86f..b220491 100644
--- a/kernel/fs.c
+++ b/kernel/fs.c
@@ -573,6 +573,7 @@ dirlookup(struct inode *dp, char *name, uint *poff)
}
// Write a new directory entry (name, inum) into the directory dp.
+// Returns 0 on success, -1 on failure (e.g. out of disk blocks).
int
dirlink(struct inode *dp, char *name, uint inum)
{
@@ -597,7 +598,7 @@ dirlink(struct inode *dp, char *name, uint inum)
strncpy(de.name, name, DIRSIZ);
de.inum = inum;
if(writei(dp, 0, (uint64)&de, off, sizeof(de)) != sizeof(de))
- panic("dirlink");
+ return -1;
return 0;
}