patch-2.4.0-test3 linux/fs/hfs/sysdep.c

Next file: linux/fs/hpfs/file.c
Previous file: linux/fs/hfs/inode.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test2/linux/fs/hfs/sysdep.c linux/fs/hfs/sysdep.c
@@ -17,6 +17,7 @@
 #include <linux/hfs_fs_sb.h>
 #include <linux/hfs_fs_i.h>
 #include <linux/hfs_fs.h>
+#include <linux/smp_lock.h>
 
 static int hfs_revalidate_dentry(struct dentry *, int);
 static int hfs_hash_dentry(struct dentry *, struct qstr *);
@@ -83,7 +84,9 @@
 {
 	struct hfs_cat_entry *entry = HFS_I(inode)->entry;
 
+	lock_kernel();
 	entry->sys_entry[HFS_ITYPE_TO_INT(HFS_ITYPE(inode->i_ino))] = NULL;
+	unlock_kernel();
 	iput(inode);
 }
 
@@ -93,6 +96,7 @@
 	int diff;
 
 	/* fix up inode on a timezone change */
+	lock_kernel();
 	if (inode && 
 	    (diff = (hfs_to_utc(0) - HFS_I(inode)->tz_secondswest))) {
 		inode->i_ctime += diff;
@@ -100,5 +104,6 @@
 		inode->i_mtime += diff;
 		HFS_I(inode)->tz_secondswest += diff;
 	}
+	unlock_kernel();
 	return 1;
 }

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