Skip to contentSkip to conversation

2.5 [8 of 8] 08-truncate_update_mtime.diff

PATCH New Oleg Drokin on behalf of Hans Reiser 1 participant 1 message Feb 11, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.5 [8 of 8] 08-truncate_update_mtime.diff

Hello!

truncate now correctly sets mtime always. Before this fix, mtime was not updated if truncated file was of zero length or if new filesize was bigger then old.
Problem was noticed by Matthias Andree <[email protected]>

fs/reiserfs/stree.c renamed from fs/reiserfs/stree.c.orig +2 -2
@@ -1705,8 +1705,7 @@
     }
 
     if ( n_file_size == 0 || n_file_size < n_new_file_size ) {
-	pathrelse(&s_search_path);
-	return;
+	goto update_and_out ;
     }
 
     /* Update key to search for the last file item. */
@@ -1759,6 +1758,7 @@
 	    "PAP-5680: truncate did not finish: new_file_size %Ld, current %Ld, oid %d\n",
 	    n_new_file_size, n_file_size, s_item_key.on_disk_key.k_objectid);
 
+update_and_out:
     if (update_timestamps) {
 	// this is truncate, not file closing
 	p_s_inode->i_mtime = p_s_inode->i_ctime = CURRENT_TIME;