file_close needs fs_lock.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 16 May 2006 20:10:31 +0000 (20:10 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 16 May 2006 20:10:31 +0000 (20:10 +0000)
solutions/p2.patch

index 90faed7b9995b39316ac53a802c1bfdadbadbc74..83d91fe22d7c2776869a1e268b21fdc1d454b988 100644 (file)
@@ -491,7 +491,7 @@ diff -u src/userprog/process.c~ src/userprog/process.c
 diff -u src/userprog/syscall.c~ src/userprog/syscall.c
 --- src/userprog/syscall.c~ 2004-09-26 14:15:17.000000000 -0700
 +++ src/userprog/syscall.c 2005-06-08 13:45:28.000000000 -0700
-@@ -1,20 +1,480 @@
+@@ -1,20 +1,482 @@
  #include "userprog/syscall.h"
  #include <stdio.h>
 +#include <string.h>
@@ -972,7 +972,9 @@ diff -u src/userprog/syscall.c~ src/userprog/syscall.c
 +      struct file_descriptor *fd;
 +      fd = list_entry (e, struct file_descriptor, elem);
 +      next = list_next (e);
++      lock_acquire (&fs_lock);
 +      file_close (fd->file);
++      lock_release (&fs_lock);
 +      free (fd);
 +    }
 +}