Re: [PATCH] ext2: Do not update mtime of a move directory when parent has not changed

Andrew Morton
2009-04-09T18:54:04Z

On Thu, 9 Apr 2009 20:41:32 +0200
Jan Kara <jack@suse.cz> wrote:

> If the parent of the moved directory has not changed, there's no real
> reason to change mtime. Specs doesn't seem to say anything about this
> particular case and e.g. ext3 does not change mtime in this case.
> So we become a tiny bit more consistent.
>
> Spotted by ronny.pretzsch@dfs.de, initial fix by J__rn Engel <joern@logfs.org>.
>
> CC: ronny.pretzsch@dfs.de
> CC: hare@suse.de
> Acked-by: J__rn Engel <joern@logfs.org>
> Signed-off-by: Jan Kara <jack@suse.cz>
> ---
> fs/ext2/namei.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c
> index 90ea179..556f258 100644
> --- a/fs/ext2/namei.c
> +++ b/fs/ext2/namei.c
> @@ -352,7 +352,10 @@ static int ext2_rename (struct inode * old_dir, struct dentry * old_dentry,
> inode_dec_link_count(old_inode);
>
> if (dir_de) {
> - ext2_set_link(old_inode, dir_de, dir_page, new_dir);
> + /* Set link only if parent has changed and thus avoid setting
> + * of mtime of the moved directory on a pure rename. */
> + if (old_dir != new_dir)
> + ext2_set_link(old_inode, dir_de, dir_page, new_dir);
> inode_dec_link_count(old_dir);
> }
> return 0;

hm, what do other filesystems do? We risk breaking things in either case.
Probably changing ext2 is safer than changing ext3/4, given that ext2 is
used less.