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
Родитель a58823ac45
Коммит 7c71245866
6 изменённых файлов: 5 добавлений и 16 удалений

Просмотреть файл

@ -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 {

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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 */

Просмотреть файл

@ -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)

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);
}