projects
/
pintos-anon
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
f9a840a
)
Update patch.
author
Ben Pfaff
<blp@cs.stanford.edu>
Tue, 21 Jun 2005 00:53:01 +0000
(
00:53
+0000)
committer
Ben Pfaff
<blp@cs.stanford.edu>
Tue, 21 Jun 2005 00:53:01 +0000
(
00:53
+0000)
solutions/p4.patch
patch
|
blob
|
history
diff --git
a/solutions/p4.patch
b/solutions/p4.patch
index 2cc4d97bb956e154dd76fd7a55d6bc8e6dab406a..d481c701d3ab90d60be361cc22569d12a3530608 100644
(file)
--- a/
solutions/p4.patch
+++ b/
solutions/p4.patch
@@
-1532,7
+1532,7
@@
diff -u src/filesys/inode.c~ src/filesys/inode.c
/* Closes INODE and writes it to disk.
If this was the last reference to INODE, frees its memory.
If INODE was also a removed inode, frees its blocks. */
/* Closes INODE and writes it to disk.
If this was the last reference to INODE, frees its memory.
If INODE was also a removed inode, frees its blocks. */
-@@ -158,
18 +181,59
@@ inode_close (struct inode *inode)
+@@ -158,
21 +181,60
@@ inode_close (struct inode *inode)
return;
/* Release resources if this was the last opener. */
return;
/* Release resources if this was the last opener. */
@@
-1542,13
+1542,16
@@
diff -u src/filesys/inode.c~ src/filesys/inode.c
/* Remove from inode list and release lock. */
list_remove (&inode->elem);
+ lock_release (&open_inodes_lock);
/* Remove from inode list and release lock. */
list_remove (&inode->elem);
+ lock_release (&open_inodes_lock);
-
+
/* Deallocate blocks if removed. */
/* 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));
+- }
+ deallocate_inode (inode);
+ deallocate_inode (inode);
+
free (inode);
}
+ else
free (inode);
}
+ else