X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffilesys%2Finode.c;h=777138b10f479530cb3daed59c5b331e2af1050a;hb=4decb23c1ffd33f89d7b58fd801332067a31d399;hp=bd68167baa1c5c4b2bcfd02c73b99c194e102c87;hpb=615bf3b3d2a8573ed6fb9ddc0055745e163ac999;p=pintos-anon diff --git a/src/filesys/inode.c b/src/filesys/inode.c index bd68167..777138b 100644 --- a/src/filesys/inode.c +++ b/src/filesys/inode.c @@ -162,11 +162,14 @@ inode_close (struct inode *inode) { /* Remove from inode list and release lock. */ list_remove (&inode->elem); - + /* Deallocate blocks if removed. */ - if (inode->removed) - free_map_release (inode->sector, - bytes_to_sectors (inode->data.length)); + if (inode->removed) + { + free_map_release (inode->sector, 1); + free_map_release (inode->data.start, + bytes_to_sectors (inode->data.length)); + } free (inode); }