Patch "hpfs: update ctime and mtime on directory modification" has been added to the 3.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
hpfs: update ctime and mtime on directory modification
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
hpfs-update-ctime-and-mtime-on-directory-modification.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f49a26e7718dd30b49e3541e3e25aecf5e7294e2Mon Sep 17 00:00:00 2001
From: Mikulas Patocka <[email protected]>
Date: Wed, 2 Sep 2015 22:51:53 +0200
Subject: hpfs: update ctime and mtime on directory modification
From: Mikulas Patocka <[email protected]>
commit f49a26e7718dd30b49e3541e3e25aecf5e7294e2 upstream.
Update ctime and mtime when a directory is modified. (though OS/2 doesn't update them anyway)
--- fs/hpfs/namei.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-)
fs/hpfs/namei.c +24 -1
@@ -8,6 +8,17 @@#include <linux/sched.h> #include "hpfs_fn.h" +static void hpfs_update_directory_times (struct inode *dir) +{ +time_t t =get_seconds (); +if (t == dir->i_mtime.tv_sec && + t == dir->i_ctime.tv_sec) +return ; + dir->i_mtime.tv_sec = dir->i_ctime.tv_sec = t; + dir->i_mtime.tv_nsec = dir->i_ctime.tv_nsec =0 ; +hpfs_write_inode_nolock (dir); +} +static int hpfs_mkdir (struct inode *dir,struct dentry *dentry,umode_t mode) {const unsigned char *name = dentry->d_name.name;
@@ -99,6 +110,7 @@ static int hpfs_mkdir(struct inode *dir, result->i_mode = mode |S_IFDIR ;hpfs_write_inode_nolock (result); } +hpfs_update_directory_times (dir);d_instantiate (dentry, result);hpfs_unlock (dir->i_sb);return 0 ;
@@ -187,6 +199,7 @@ static int hpfs_create(struct inode *dir result->i_mode = mode |S_IFREG ;hpfs_write_inode_nolock (result); } +hpfs_update_directory_times (dir);d_instantiate (dentry, result);hpfs_unlock (dir->i_sb);return 0 ;
@@ -262,6 +275,7 @@ static int hpfs_mknod(struct inode *dir,insert_inode_hash (result);hpfs_write_inode_nolock (result); +hpfs_update_directory_times (dir);d_instantiate (dentry, result);brelse (bh);hpfs_unlock (dir->i_sb);
@@ -340,6 +354,7 @@ static int hpfs_symlink(struct inode *diinsert_inode_hash (result);hpfs_write_inode_nolock (result); +hpfs_update_directory_times (dir);d_instantiate (dentry, result);hpfs_unlock (dir->i_sb);return 0 ;
@@ -423,6 +438,8 @@ again: out1:hpfs_brelse4 (&qbh); out: +if (!err) +hpfs_update_directory_times (dir);hpfs_unlock (dir->i_sb);return err; }
@@ -477,6 +494,8 @@ static int hpfs_rmdir(struct inode *dir, out1:hpfs_brelse4 (&qbh); out: +if (!err) +hpfs_update_directory_times (dir);hpfs_unlock (dir->i_sb);return err; }
@@ -595,7 +614,7 @@ static int hpfs_rename(struct inode *old goto end1; } - end: +end:hpfs_i (i)->i_parent_dir = new_dir->i_ino;if (S_ISDIR (i->i_mode)) {inc_nlink (new_dir);
@@ -610,6 +629,10 @@ static int hpfs_rename(struct inode *oldbrelse (bh); } end1: +if (!err) { +hpfs_update_directory_times (old_dir); +hpfs_update_directory_times (new_dir); + }hpfs_unlock (i->i_sb);return err; }
Patches currently in stable-queue which might be from [email protected] are
queue-3.10/hpfs-update-ctime-and-mtime-on-directory-modification.patch