]> git.hungrycats.org Git - linux/commitdiff
[PATCH] 08-truncate_update_mtime.diff
authorHans Reiser <reiser@namesys.com>
Mon, 11 Feb 2002 13:15:52 +0000 (05:15 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Mon, 11 Feb 2002 13:15:52 +0000 (05:15 -0800)
   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 <ma@dt.e-technik.uni-dortmund.de>

fs/reiserfs/stree.c

index 43649b028aed5aaf8ba6e6215dc8218c5820b93b..ec60bf9ac96be41a4dbcc7ccdf853ae6d7d4c676 100644 (file)
@@ -1705,8 +1705,7 @@ void reiserfs_do_truncate (struct reiserfs_transaction_handle *th,
     }
 
     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 @@ void reiserfs_do_truncate (struct reiserfs_transaction_handle *th,
            "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;