patch-2.4.0-test4 linux/fs/devfs/base.c

Next file: linux/fs/ext2/file.c
Previous file: linux/fs/dcache.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test3/linux/fs/devfs/base.c linux/fs/devfs/base.c
@@ -3311,7 +3311,12 @@
 {
     struct fs_info *fs_info = inode->i_sb->u.generic_sbp;
 
-    if (fs_info->devfsd_file != file) return 0;
+    lock_kernel();
+    if (fs_info->devfsd_file != file)
+    {
+	unlock_kernel();
+	return 0;
+    }
     fs_info->devfsd_event_mask = 0;
     fs_info->devfsd_file = NULL;
     if (fs_info->devfsd_buffer)
@@ -3322,6 +3327,7 @@
     fs_info->devfsd_buffer = NULL;
     fs_info->devfsd_task = NULL;
     wake_up (&fs_info->revalidate_wait_queue);
+    unlock_kernel();
     return 0;
 }   /*  End Function devfsd_close  */
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)