diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-06-26 23:34:26 -0400 |
---|---|---|
committer | Niv Sardi <xaiki@debian.org> | 2008-07-28 02:59:14 -0400 |
commit | 8f8670bb1cfa177d35c54e4cc96152dc425a7ab3 (patch) | |
tree | 677c7b6801ac0b1307966df96470aa27cee78441 /fs/xfs | |
parent | 313b5c767a044c7a0db5e773cb7aea70383b2627 (diff) |
[XFS] Don't update mtime on rename source
As reported by Michael-John Turner XFS updates the mtime on the source
inode of a rename call in case it's a directory and changes the parent.
This doesn't make any sense, is not mentioned in the standards and not
performed by any other Linux filesystems so remove it.
SGI-PV: 983684
SGI-Modid: xfs-linux-melb:xfs-kern:31364a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Barry Naujok <bnaujok@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/xfs_rename.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c index d8063e1ad298..d700dacdb10e 100644 --- a/fs/xfs/xfs_rename.c +++ b/fs/xfs/xfs_rename.c | |||
@@ -336,22 +336,18 @@ xfs_rename( | |||
336 | ASSERT(error != EEXIST); | 336 | ASSERT(error != EEXIST); |
337 | if (error) | 337 | if (error) |
338 | goto abort_return; | 338 | goto abort_return; |
339 | xfs_ichgtime(src_ip, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); | ||
340 | |||
341 | } else { | ||
342 | /* | ||
343 | * We always want to hit the ctime on the source inode. | ||
344 | * We do it in the if clause above for the 'new_parent && | ||
345 | * src_is_directory' case, and here we get all the other | ||
346 | * cases. This isn't strictly required by the standards | ||
347 | * since the source inode isn't really being changed, | ||
348 | * but old unix file systems did it and some incremental | ||
349 | * backup programs won't work without it. | ||
350 | */ | ||
351 | xfs_ichgtime(src_ip, XFS_ICHGTIME_CHG); | ||
352 | } | 339 | } |
353 | 340 | ||
354 | /* | 341 | /* |
342 | * We always want to hit the ctime on the source inode. | ||
343 | * | ||
344 | * This isn't strictly required by the standards since the source | ||
345 | * inode isn't really being changed, but old unix file systems did | ||
346 | * it and some incremental backup programs won't work without it. | ||
347 | */ | ||
348 | xfs_ichgtime(src_ip, XFS_ICHGTIME_CHG); | ||
349 | |||
350 | /* | ||
355 | * Adjust the link count on src_dp. This is necessary when | 351 | * Adjust the link count on src_dp. This is necessary when |
356 | * renaming a directory, either within one parent when | 352 | * renaming a directory, either within one parent when |
357 | * the target existed, or across two parent directories. | 353 | * the target existed, or across two parent directories. |