summaryrefslogtreecommitdiff
path: root/fs.c
diff options
context:
space:
mode:
authorrtm <rtm>2006-08-24 19:21:19 +0000
committerrtm <rtm>2006-08-24 19:21:19 +0000
commitbcfb84b6a9077b5e035325b3396c062d1f183ac4 (patch)
tree5a08eec2343a00631160aa42644ebf1d7a71a45c /fs.c
parent1be766853771bda6023b8024041453413fb777bb (diff)
downloadxv6-labs-bcfb84b6a9077b5e035325b3396c062d1f183ac4.tar.gz
xv6-labs-bcfb84b6a9077b5e035325b3396c062d1f183ac4.tar.bz2
xv6-labs-bcfb84b6a9077b5e035325b3396c062d1f183ac4.zip
big directory test
Diffstat (limited to 'fs.c')
-rw-r--r--fs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs.c b/fs.c
index cd60da9..5280a4d 100644
--- a/fs.c
+++ b/fs.c
@@ -262,8 +262,8 @@ iunlink(struct inode *ip)
if (ip->addrs[i] != 0) {
if (i == INDIRECT) {
inbp = bread(ip->dev, ip->addrs[INDIRECT]);
+ uint *a = (uint *) inbp->data;
for (j = 0; j < NINDIRECT; j++) {
- uint *a = (uint *) inbp->data;
if (a[j] != 0) {
bfree(ip->dev, a[j]);
a[j] = 0;
@@ -589,6 +589,9 @@ unlink(char *cp)
ip = iget(dev, inum);
+ if(ip->nlink < 1)
+ panic("unlink nlink < 1");
+
ip->nlink--;
iupdate(ip);