patch-2.4.0-test3 linux/fs/ufs/inode.c

Next file: linux/fs/ufs/super.c
Previous file: linux/fs/ufs/ialloc.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test2/linux/fs/ufs/inode.c linux/fs/ufs/inode.c
@@ -136,6 +136,7 @@
 		       ufs_block_bmap(bread(sb->s_dev, uspi->s_sbbase + i,
 					    sb->s_blocksize),
 				      frag & uspi->s_apbmask, uspi, swab));
+		goto out;
 	}
 	frag -= 1 << (uspi->s_apbshift + uspi->s_fpbshift);
 	if (frag < (1 << (uspi->s_2apbshift + uspi->s_fpbshift))) {
@@ -744,9 +745,11 @@
 	return 0;
 }
 
-void ufs_write_inode (struct inode * inode)
+void ufs_write_inode (struct inode * inode, int wait)
 {
-	ufs_update_inode (inode, 0);
+	lock_kernel();
+	ufs_update_inode (inode, wait);
+	unlock_kernel();
 }
 
 int ufs_sync_inode (struct inode *inode)
@@ -754,18 +757,15 @@
 	return ufs_update_inode (inode, 1);
 }
 
-void ufs_put_inode (struct inode * inode)
-{
-	UFSD(("ENTER & EXIT\n"))
-}
-
 void ufs_delete_inode (struct inode * inode)
 {
 	/*inode->u.ufs_i.i_dtime = CURRENT_TIME;*/
+	lock_kernel();
 	mark_inode_dirty(inode);
 	ufs_update_inode(inode, IS_SYNC(inode));
 	inode->i_size = 0;
 	if (inode->i_blocks)
 		ufs_truncate (inode);
 	ufs_free_inode (inode);
+	unlock_kernel();
 }

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