diff options
| author | David Howells <dhowells@redhat.com> | 2011-06-14 00:45:44 +0100 | 
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-06-16 11:44:48 -0400 | 
| commit | d6e43f751f252c68ca69fa6d18665d88d69ef8b7 (patch) | |
| tree | 6da6f811e89a6d975661bde86244d7751932d762 /fs/afs | |
| parent | 2e41ae225f742ded5b7d9847cd8bd605f27daba8 (diff) | |
| download | linux-d6e43f751f252c68ca69fa6d18665d88d69ef8b7.tar.bz2 | |
AFS: Use i_generation not i_version for the vnode uniquifier
Store the AFS vnode uniquifier in the i_generation field, not the i_version
field of the inode struct.  i_version can then be given the AFS data version
number.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/afs')
| -rw-r--r-- | fs/afs/dir.c | 8 | ||||
| -rw-r--r-- | fs/afs/fsclient.c | 3 | ||||
| -rw-r--r-- | fs/afs/inode.c | 10 | 
3 files changed, 11 insertions, 10 deletions
diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 20c106f24927..1b0b19550015 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -584,11 +584,11 @@ static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry,  success:  	d_add(dentry, inode); -	_leave(" = 0 { vn=%u u=%u } -> { ino=%lu v=%llu }", +	_leave(" = 0 { vn=%u u=%u } -> { ino=%lu v=%u }",  	       fid.vnode,  	       fid.unique,  	       dentry->d_inode->i_ino, -	       (unsigned long long)dentry->d_inode->i_version); +	       dentry->d_inode->i_generation);  	return NULL;  } @@ -671,10 +671,10 @@ static int afs_d_revalidate(struct dentry *dentry, struct nameidata *nd)  		 * been deleted and replaced, and the original vnode ID has  		 * been reused */  		if (fid.unique != vnode->fid.unique) { -			_debug("%s: file deleted (uq %u -> %u I:%llu)", +			_debug("%s: file deleted (uq %u -> %u I:%u)",  			       dentry->d_name.name, fid.unique,  			       vnode->fid.unique, -			       (unsigned long long)dentry->d_inode->i_version); +			       dentry->d_inode->i_generation);  			spin_lock(&vnode->lock);  			set_bit(AFS_VNODE_DELETED, &vnode->flags);  			spin_unlock(&vnode->lock); diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c index 4bd0218473a9..346e3289abd7 100644 --- a/fs/afs/fsclient.c +++ b/fs/afs/fsclient.c @@ -89,7 +89,7 @@ static void xdr_decode_AFSFetchStatus(const __be32 **_bp,  			i_size_write(&vnode->vfs_inode, size);  			vnode->vfs_inode.i_uid = status->owner;  			vnode->vfs_inode.i_gid = status->group; -			vnode->vfs_inode.i_version = vnode->fid.unique; +			vnode->vfs_inode.i_generation = vnode->fid.unique;  			vnode->vfs_inode.i_nlink = status->nlink;  			mode = vnode->vfs_inode.i_mode; @@ -102,6 +102,7 @@ static void xdr_decode_AFSFetchStatus(const __be32 **_bp,  		vnode->vfs_inode.i_ctime.tv_sec	= status->mtime_server;  		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;  	}  	expected_version = status->data_version; diff --git a/fs/afs/inode.c b/fs/afs/inode.c index db66c5201474..0fdab6e03d87 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -75,7 +75,8 @@ static int afs_inode_map_status(struct afs_vnode *vnode, struct key *key)  	inode->i_ctime.tv_nsec	= 0;  	inode->i_atime		= inode->i_mtime = inode->i_ctime;  	inode->i_blocks		= 0; -	inode->i_version	= vnode->fid.unique; +	inode->i_generation	= vnode->fid.unique; +	inode->i_version	= vnode->status.data_version;  	inode->i_mapping->a_ops	= &afs_fs_aops;  	/* check to see whether a symbolic link is really a mountpoint */ @@ -100,7 +101,7 @@ static int afs_iget5_test(struct inode *inode, void *opaque)  	struct afs_iget_data *data = opaque;  	return inode->i_ino == data->fid.vnode && -		inode->i_version == data->fid.unique; +		inode->i_generation == data->fid.unique;  }  /* @@ -122,7 +123,7 @@ static int afs_iget5_set(struct inode *inode, void *opaque)  	struct afs_vnode *vnode = AFS_FS_I(inode);  	inode->i_ino = data->fid.vnode; -	inode->i_version = data->fid.unique; +	inode->i_generation = data->fid.unique;  	vnode->fid = data->fid;  	vnode->volume = data->volume; @@ -380,8 +381,7 @@ int afs_getattr(struct vfsmount *mnt, struct dentry *dentry,  	inode = dentry->d_inode; -	_enter("{ ino=%lu v=%llu }", inode->i_ino, -		(unsigned long long)inode->i_version); +	_enter("{ ino=%lu v=%u }", inode->i_ino, inode->i_generation);  	generic_fillattr(inode, stat);  	return 0;  |