Add cast to silence new warning in GCC 4.0.
[pintos-anon] / solutions / p4.patch
index 614c37924a153ef2b83b1cf55c001c10fe77625a..d481c701d3ab90d60be361cc22569d12a3530608 100644 (file)
@@ -102,16 +102,18 @@ diff -u src/devices/timer.c~ src/devices/timer.c
 diff -u src/filesys/Make.vars~ src/filesys/Make.vars
 --- src/filesys/Make.vars~ 2005-05-24 14:46:45.000000000 -0700
 +++ src/filesys/Make.vars 2005-06-16 15:09:31.000000000 -0700
-@@ -6,6 +6,6 @@ KERNEL_SUBDIRS = threads devices lib lib
- TEST_SUBDIRS = tests/userprog tests/filesys/base tests/filesys/extended
+@@ -6,7 +6,7 @@ KERNEL_SUBDIRS = threads devices lib lib
+ GRADING_FILE = $(SRCDIR)/tests/filesys/Grading.no-vm
  
  # Uncomment the lines below to enable VM.
 -#os.dsk: DEFINES += -DVM
 -#KERNEL_SUBDIRS += vm
 -#TEST_SUBDIRS += tests/vm
+-#GRADING_FILE = $(SRCDIR)/tests/filesys/Grading.with-vm
 +os.dsk: DEFINES += -DVM
 +KERNEL_SUBDIRS += vm
 +TEST_SUBDIRS += tests/vm
++GRADING_FILE = $(SRCDIR)/tests/filesys/Grading.with-vm
 diff -u src/filesys/cache.c~ src/filesys/cache.c
 --- src/filesys/cache.c~ 1969-12-31 16:00:00.000000000 -0800
 +++ src/filesys/cache.c 2005-06-16 15:09:31.000000000 -0700
@@ -1530,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. */
-@@ -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. */
@@ -1540,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);
+  
        /* 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);
        free (inode); 
      }
 +  else