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]
Date:   Sat, 16 Dec 2017 08:49:46 -0500
From:   Jeff Layton <jlayton@...nel.org>
To:     linux-fsdevel@...r.kernel.org
Cc:     linux-kernel@...r.kernel.org, viro@...iv.linux.org.uk,
        linux-nfs@...r.kernel.org, bfields@...ldses.org, neilb@...e.de,
        jack@...e.de, linux-ext4@...r.kernel.org, tytso@....edu,
        adilger.kernel@...ger.ca, linux-xfs@...r.kernel.org,
        darrick.wong@...cle.com, david@...morbit.com,
        linux-btrfs@...r.kernel.org, clm@...com, jbacik@...com,
        dsterba@...e.com, linux-integrity@...r.kernel.org,
        zohar@...ux.vnet.ibm.com, dmitry.kasatkin@...il.com,
        linux-afs@...ts.infradead.org, dhowells@...hat.com
Subject: Re: [PATCH v2 05/19] afs: convert to new i_version API

On Sat, 2017-12-16 at 08:46 -0500, Jeff Layton wrote:
> From: Jeff Layton <jlayton@...hat.com>
> 
> For AFS, it's generally treated as an opaque value, so we use the
> *_raw variants of the API here.
> 
> Note that AFS has quite a different definition for this counter. AFS
> only increments it on changes to the data, not for the metadata. We'll
> need to reconcile that somehow if we ever want to present this to
> userspace via statx.
> 
> Signed-off-by: Jeff Layton <jlayton@...hat.com>
> ---
>  fs/afs/fsclient.c | 2 +-
>  fs/afs/inode.c    | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
> index b90ef39ae914..67ed9bb5fe31 100644
> --- a/fs/afs/fsclient.c
> +++ b/fs/afs/fsclient.c
> @@ -124,7 +124,7 @@ static void xdr_decode_AFSFetchStatus(const __be32 **_bp,
>  		vnode->vfs_inode.i_ctime.tv_sec	= status->mtime_client;
>  		vnode->vfs_inode.i_mtime	= vnode->vfs_inode.i_ctime;
>  		vnode->vfs_inode.i_atime	= vnode->vfs_inode.i_ctime;
> -		vnode->vfs_inode.i_version	= data_version;
> +		inode_set_iversion_raw(&vnode->vfs_inode, data_version);
>  	}
>  
>  	expected_version = status->data_version;
> diff --git a/fs/afs/inode.c b/fs/afs/inode.c
> index 3415eb7484f6..af9577210a46 100644
> --- a/fs/afs/inode.c
> +++ b/fs/afs/inode.c
> @@ -89,7 +89,7 @@ static int afs_inode_map_status(struct afs_vnode *vnode, struct key *key)
>  	inode->i_atime		= inode->i_mtime = inode->i_ctime;
>  	inode->i_blocks		= 0;
>  	inode->i_generation	= vnode->fid.unique;
> -	inode->i_version	= vnode->status.data_version;
> +	inode_set_iversion_raw(inode, vnode->status.data_version);
>  	inode->i_mapping->a_ops	= &afs_fs_aops;
>  
>  	read_sequnlock_excl(&vnode->cb_lock);
> @@ -218,7 +218,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
>  	inode->i_ctime.tv_nsec	= 0;
>  	inode->i_atime		= inode->i_mtime = inode->i_ctime;
>  	inode->i_blocks		= 0;
> -	inode->i_version	= 0;
> +	inode_set_iversion_raw(inode, 0);
>  	inode->i_generation	= 0;
>  
>  	set_bit(AFS_VNODE_PSEUDODIR, &vnode->flags);

TBH, we could just remove the i_version handling here. Nothing ever
looks at the i_version field in AFS inodes.
-- 
Jeff Layton <jlayton@...nel.org>

Powered by blists - more mailing lists