patch-2.1.79 linux/fs/hfs/file.c

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

diff -u --recursive --new-file v2.1.78/linux/fs/hfs/file.c linux/fs/hfs/file.c
@@ -97,7 +97,12 @@
 		/* If writing the block, then we have exclusive access
 		   to the file until we return, so it can't have moved.
 		*/
-		return tmp ? getblk(dev, tmp, HFS_SECTOR_SIZE) : NULL;
+	       if (tmp) {
+	               hfs_cat_mark_dirty(fork->entry);
+		       return getblk(dev, tmp, HFS_SECTOR_SIZE);
+	       }
+	       return NULL;
+
 	} else {
 		/* If reading the block, then retry since the
 		   location on disk could have changed while
@@ -235,6 +240,7 @@
 
 	fork->lsize = inode->i_size;
 	hfs_extent_adj(fork);
+	hfs_cat_mark_dirty(HFS_I(inode)->entry);
 
 	inode->i_size = fork->lsize;
 	inode->i_blocks = fork->psize;
@@ -491,7 +497,7 @@
 			fork->lsize = pos;
 		}
 		entry->modify_date = hfs_u_to_mtime(CURRENT_TIME);
-		entry->dirt = 1;
+		hfs_cat_mark_dirty(entry);
 	}
 	return written;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov