diff options
-rw-r--r-- | fs.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -322,12 +322,14 @@ iput(struct inode *ip) acquire(&icache.lock); if(ip->ref == 1 && (ip->flags & I_VALID) && ip->nlink == 0){ // inode has no links and no other references: truncate and free. + acquiresleep(&ip->lock); release(&icache.lock); itrunc(ip); ip->type = 0; iupdate(ip); acquire(&icache.lock); ip->flags = 0; + releasesleep(&ip->lock); } ip->ref--; release(&icache.lock); |