diff options
Diffstat (limited to 'fs.c')
-rw-r--r-- | fs.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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); |