afs: Don't save callback version and type fields

Don't save callback version and type fields as the version is about the
format of the callback information and the type is relative to the
particular RPC call.

Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
David Howells 2019-05-14 15:35:44 +01:00
parent a58823ac45
commit 7c71245866
6 changed files with 5 additions and 16 deletions

View File

@ -72,8 +72,8 @@ typedef enum {
struct afs_callback {
time64_t expires_at; /* Time at which expires */
unsigned version; /* Callback version */
afs_callback_type_t type; /* Type of callback */
//unsigned version; /* Callback version */
//afs_callback_type_t type; /* Type of callback */
};
struct afs_callback_break {

View File

@ -148,9 +148,9 @@ static void xdr_decode_AFSCallBack(const __be32 **_bp,
struct afs_callback *cb = &scb->callback;
const __be32 *bp = *_bp;
cb->version = ntohl(*bp++);
bp++; /* version */
cb->expires_at = xdr_decode_expiry(call, ntohl(*bp++));
cb->type = ntohl(*bp++);
bp++; /* type */
scb->have_cb = true;
*_bp = bp;
}

View File

@ -136,12 +136,8 @@ static int afs_inode_init_from_status(struct afs_vnode *vnode, struct key *key,
if (!scb->have_cb) {
/* it's a symlink we just created (the fileserver
* didn't give us a callback) */
vnode->cb_version = 0;
vnode->cb_type = 0;
vnode->cb_expires_at = ktime_get_real_seconds();
} else {
vnode->cb_version = scb->callback.version;
vnode->cb_type = scb->callback.type;
vnode->cb_expires_at = scb->callback.expires_at;
old_cbi = vnode->cb_interest;
if (cbi != old_cbi)
@ -248,8 +244,6 @@ static void afs_apply_callback(struct afs_fs_cursor *fc,
struct afs_callback *cb = &scb->callback;
if (!afs_cb_is_broken(cb_break, vnode, fc->cbi)) {
vnode->cb_version = cb->version;
vnode->cb_type = cb->type;
vnode->cb_expires_at = cb->expires_at;
old = vnode->cb_interest;
if (old != fc->cbi) {
@ -535,7 +529,7 @@ struct inode *afs_iget(struct super_block *sb, struct key *key,
clear_bit(AFS_VNODE_UNSET, &vnode->flags);
inode->i_flags |= S_NOATIME;
unlock_new_inode(inode);
_leave(" = %p [CB { v=%u t=%u }]", inode, vnode->cb_version, vnode->cb_type);
_leave(" = %p", inode);
return inode;
/* failure */

View File

@ -683,8 +683,6 @@ struct afs_vnode {
seqlock_t cb_lock; /* Lock for ->cb_interest, ->status, ->cb_*break */
time64_t cb_expires_at; /* time at which callback expires */
unsigned cb_version; /* callback version */
afs_callback_type_t cb_type; /* type of callback */
};
static inline struct fscache_cookie *afs_vnode_cache(struct afs_vnode *vnode)

View File

@ -683,7 +683,6 @@ static struct inode *afs_alloc_inode(struct super_block *sb)
#endif
vnode->flags = 1 << AFS_VNODE_UNSET;
vnode->cb_type = 0;
vnode->lock_state = AFS_VNODE_LOCK_NONE;
init_rwsem(&vnode->rmdir_lock);

View File

@ -245,8 +245,6 @@ static void xdr_decode_YFSCallBack(const __be32 **_bp,
cb_expiry = call->reply_time;
cb_expiry = ktime_add(cb_expiry, xdr_to_u64(x->expiration_time) * 100);
cb->expires_at = ktime_divns(cb_expiry, NSEC_PER_SEC);
cb->version = ntohl(x->version);
cb->type = ntohl(x->type);
scb->have_cb = true;
*_bp += xdr_size(x);
}