lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230706133400.esyj5hebcly23qiq@quack3>
Date:   Thu, 6 Jul 2023 15:34:00 +0200
From:   Jan Kara <jack@...e.cz>
To:     Jeff Layton <jlayton@...nel.org>
Cc:     Christian Brauner <brauner@...nel.org>,
        Trond Myklebust <trond.myklebust@...merspace.com>,
        Anna Schumaker <anna@...nel.org>,
        Al Viro <viro@...iv.linux.org.uk>, Jan Kara <jack@...e.cz>,
        linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-nfs@...r.kernel.org
Subject: Re: [PATCH v2 57/92] nfs: convert to ctime accessor functions

On Wed 05-07-23 15:01:22, Jeff Layton wrote:
> In later patches, we're going to change how the inode's ctime field is
> used. Switch to using accessor functions instead of raw accesses of
> inode->i_ctime.
> 
> Signed-off-by: Jeff Layton <jlayton@...nel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@...e.cz>

								Honza

> ---
>  fs/nfs/callback_proc.c |  2 +-
>  fs/nfs/fscache.h       |  4 ++--
>  fs/nfs/inode.c         | 20 ++++++++++----------
>  3 files changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
> index c1eda73254e1..6bed1394d748 100644
> --- a/fs/nfs/callback_proc.c
> +++ b/fs/nfs/callback_proc.c
> @@ -59,7 +59,7 @@ __be32 nfs4_callback_getattr(void *argp, void *resp,
>  	res->change_attr = delegation->change_attr;
>  	if (nfs_have_writebacks(inode))
>  		res->change_attr++;
> -	res->ctime = inode->i_ctime;
> +	res->ctime = inode_get_ctime(inode);
>  	res->mtime = inode->i_mtime;
>  	res->bitmap[0] = (FATTR4_WORD0_CHANGE|FATTR4_WORD0_SIZE) &
>  		args->bitmap[0];
> diff --git a/fs/nfs/fscache.h b/fs/nfs/fscache.h
> index e1706e736c64..2dc64454492b 100644
> --- a/fs/nfs/fscache.h
> +++ b/fs/nfs/fscache.h
> @@ -116,8 +116,8 @@ static inline void nfs_fscache_update_auxdata(struct nfs_fscache_inode_auxdata *
>  	memset(auxdata, 0, sizeof(*auxdata));
>  	auxdata->mtime_sec  = inode->i_mtime.tv_sec;
>  	auxdata->mtime_nsec = inode->i_mtime.tv_nsec;
> -	auxdata->ctime_sec  = inode->i_ctime.tv_sec;
> -	auxdata->ctime_nsec = inode->i_ctime.tv_nsec;
> +	auxdata->ctime_sec  = inode_get_ctime(inode).tv_sec;
> +	auxdata->ctime_nsec = inode_get_ctime(inode).tv_nsec;
>  
>  	if (NFS_SERVER(inode)->nfs_client->rpc_ops->version == 4)
>  		auxdata->change_attr = inode_peek_iversion_raw(inode);
> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
> index 8172dd4135a1..1283fdfa4b0a 100644
> --- a/fs/nfs/inode.c
> +++ b/fs/nfs/inode.c
> @@ -514,7 +514,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
>  
>  		memset(&inode->i_atime, 0, sizeof(inode->i_atime));
>  		memset(&inode->i_mtime, 0, sizeof(inode->i_mtime));
> -		memset(&inode->i_ctime, 0, sizeof(inode->i_ctime));
> +		inode_set_ctime(inode, 0, 0);
>  		inode_set_iversion_raw(inode, 0);
>  		inode->i_size = 0;
>  		clear_nlink(inode);
> @@ -535,7 +535,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
>  		else if (fattr_supported & NFS_ATTR_FATTR_MTIME)
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_MTIME);
>  		if (fattr->valid & NFS_ATTR_FATTR_CTIME)
> -			inode->i_ctime = fattr->ctime;
> +			inode_set_ctime_to_ts(inode, fattr->ctime);
>  		else if (fattr_supported & NFS_ATTR_FATTR_CTIME)
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_CTIME);
>  		if (fattr->valid & NFS_ATTR_FATTR_CHANGE)
> @@ -731,7 +731,7 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr,
>  		if ((attr->ia_valid & ATTR_GID) != 0)
>  			inode->i_gid = attr->ia_gid;
>  		if (fattr->valid & NFS_ATTR_FATTR_CTIME)
> -			inode->i_ctime = fattr->ctime;
> +			inode_set_ctime_to_ts(inode, fattr->ctime);
>  		else
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_CHANGE
>  					| NFS_INO_INVALID_CTIME);
> @@ -749,7 +749,7 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr,
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATIME);
>  
>  		if (fattr->valid & NFS_ATTR_FATTR_CTIME)
> -			inode->i_ctime = fattr->ctime;
> +			inode_set_ctime_to_ts(inode, fattr->ctime);
>  		else
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_CHANGE
>  					| NFS_INO_INVALID_CTIME);
> @@ -765,7 +765,7 @@ void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr,
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_MTIME);
>  
>  		if (fattr->valid & NFS_ATTR_FATTR_CTIME)
> -			inode->i_ctime = fattr->ctime;
> +			inode_set_ctime_to_ts(inode, fattr->ctime);
>  		else
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_CHANGE
>  					| NFS_INO_INVALID_CTIME);
> @@ -1444,11 +1444,11 @@ static void nfs_wcc_update_inode(struct inode *inode, struct nfs_fattr *fattr)
>  			nfs_set_cache_invalid(inode, NFS_INO_INVALID_XATTR);
>  	}
>  	/* If we have atomic WCC data, we may update some attributes */
> -	ts = inode->i_ctime;
> +	ts = inode_get_ctime(inode);
>  	if ((fattr->valid & NFS_ATTR_FATTR_PRECTIME)
>  			&& (fattr->valid & NFS_ATTR_FATTR_CTIME)
>  			&& timespec64_equal(&ts, &fattr->pre_ctime)) {
> -		inode->i_ctime = fattr->ctime;
> +		inode_set_ctime_to_ts(inode, fattr->ctime);
>  	}
>  
>  	ts = inode->i_mtime;
> @@ -1510,7 +1510,7 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
>  		if ((fattr->valid & NFS_ATTR_FATTR_MTIME) && !timespec64_equal(&ts, &fattr->mtime))
>  			invalid |= NFS_INO_INVALID_MTIME;
>  
> -		ts = inode->i_ctime;
> +		ts = inode_get_ctime(inode);
>  		if ((fattr->valid & NFS_ATTR_FATTR_CTIME) && !timespec64_equal(&ts, &fattr->ctime))
>  			invalid |= NFS_INO_INVALID_CTIME;
>  
> @@ -1997,7 +1997,7 @@ int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, struct nfs_fa
>  	}
>  	if ((fattr->valid & NFS_ATTR_FATTR_CTIME) != 0 &&
>  			(fattr->valid & NFS_ATTR_FATTR_PRECTIME) == 0) {
> -		fattr->pre_ctime = inode->i_ctime;
> +		fattr->pre_ctime = inode_get_ctime(inode);
>  		fattr->valid |= NFS_ATTR_FATTR_PRECTIME;
>  	}
>  	if ((fattr->valid & NFS_ATTR_FATTR_MTIME) != 0 &&
> @@ -2190,7 +2190,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
>  			save_cache_validity & NFS_INO_INVALID_MTIME;
>  
>  	if (fattr->valid & NFS_ATTR_FATTR_CTIME)
> -		inode->i_ctime = fattr->ctime;
> +		inode_set_ctime_to_ts(inode, fattr->ctime);
>  	else if (fattr_supported & NFS_ATTR_FATTR_CTIME)
>  		nfsi->cache_validity |=
>  			save_cache_validity & NFS_INO_INVALID_CTIME;
> -- 
> 2.41.0
> 
-- 
Jan Kara <jack@...e.com>
SUSE Labs, CR

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ