[Devel,RHEL7,COMMIT] Revert "fs: use original vfsmount for touch_atime"

Submitted by Konstantin Khorenko on Sept. 21, 2016, 1:52 p.m.

Details

Message ID 201609211352.u8LDqvZ5008332@finist_cl7.x64_64.work.ct
State New
Series "overlayfs: fix handling MNT_NOATIME"
Headers show

Commit Message

Konstantin Khorenko Sept. 21, 2016, 1:52 p.m.
The commit is pushed to "branch-rh7-3.10.0-327.28.2.vz7.17.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-327.28.2.vz7.17.8
------>
commit 5ca9c58d75751a11522dd129ddeb5a894a227896
Author: Konstantin Khorenko <khorenko@virtuozzo.com>
Date:   Wed Sep 21 17:51:42 2016 +0400

    Revert "fs: use original vfsmount for touch_atime"
    
    Temporary revert due to panic:
    https://jira.sw.ru/browse/PSBM-52373
    
    This reverts commit a427c4dfb7514de4701ad5f51e4f9442a495131c.
---
 fs/open.c          | 3 ---
 include/linux/fs.h | 4 +---
 2 files changed, 1 insertion(+), 6 deletions(-)

Patch hide | download patch | download mbox

diff --git a/fs/open.c b/fs/open.c
index 8c066b1..bc60c05 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -894,9 +894,6 @@  int vfs_open(const struct path *path, struct file *filp,
 	struct inode *inode = path->dentry->d_inode;
 	iop_dentry_open_t dentry_open = get_dentry_open_iop(inode);
 
-	if (!filp->f_original_path.mnt)
-		filp->f_original_path = *path;
-
 	if (dentry_open)
 		return dentry_open(path->dentry, filp, cred);
 	else {
diff --git a/include/linux/fs.h b/include/linux/fs.h
index ed9519f..7203dba 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -959,7 +959,6 @@  struct file {
 		struct rcu_head 	fu_rcuhead;
 	} f_u;
 	struct path		f_path;
-	struct path		f_original_path;
 #define f_dentry	f_path.dentry
 	struct inode		*f_inode;	/* cached value */
 	const struct file_operations	*f_op;
@@ -2094,8 +2093,7 @@  extern void touch_atime(struct path *);
 static inline void file_accessed(struct file *file)
 {
 	if (!(file->f_flags & O_NOATIME))
-		touch_atime(file->f_original_path.mnt ?
-			    &file->f_original_path : &file->f_path);
+		touch_atime(&file->f_path);
 }
 
 int sync_inode(struct inode *inode, struct writeback_control *wbc);

Comments

Konstantin Khorenko Sept. 23, 2016, 1:31 p.m.
reapplied in rh7-3.10.0-327.28.2.vz7.17.10

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 09/21/2016 04:52 PM, Konstantin Khorenko wrote:
> The commit is pushed to "branch-rh7-3.10.0-327.28.2.vz7.17.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
> after rh7-3.10.0-327.28.2.vz7.17.8
> ------>
> commit 5ca9c58d75751a11522dd129ddeb5a894a227896
> Author: Konstantin Khorenko <khorenko@virtuozzo.com>
> Date:   Wed Sep 21 17:51:42 2016 +0400
>
>     Revert "fs: use original vfsmount for touch_atime"
>
>     Temporary revert due to panic:
>     https://jira.sw.ru/browse/PSBM-52373
>
>     This reverts commit a427c4dfb7514de4701ad5f51e4f9442a495131c.
> ---
>  fs/open.c          | 3 ---
>  include/linux/fs.h | 4 +---
>  2 files changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/fs/open.c b/fs/open.c
> index 8c066b1..bc60c05 100644
> --- a/fs/open.c
> +++ b/fs/open.c
> @@ -894,9 +894,6 @@ int vfs_open(const struct path *path, struct file *filp,
>  	struct inode *inode = path->dentry->d_inode;
>  	iop_dentry_open_t dentry_open = get_dentry_open_iop(inode);
>
> -	if (!filp->f_original_path.mnt)
> -		filp->f_original_path = *path;
> -
>  	if (dentry_open)
>  		return dentry_open(path->dentry, filp, cred);
>  	else {
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index ed9519f..7203dba 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -959,7 +959,6 @@ struct file {
>  		struct rcu_head 	fu_rcuhead;
>  	} f_u;
>  	struct path		f_path;
> -	struct path		f_original_path;
>  #define f_dentry	f_path.dentry
>  	struct inode		*f_inode;	/* cached value */
>  	const struct file_operations	*f_op;
> @@ -2094,8 +2093,7 @@ extern void touch_atime(struct path *);
>  static inline void file_accessed(struct file *file)
>  {
>  	if (!(file->f_flags & O_NOATIME))
> -		touch_atime(file->f_original_path.mnt ?
> -			    &file->f_original_path : &file->f_path);
> +		touch_atime(&file->f_path);
>  }
>
>  int sync_inode(struct inode *inode, struct writeback_control *wbc);
> .
>