Commit 06aeb297 authored by David Howells's avatar David Howells

afs: Remove callback details from afs_callback_break struct

Remove unnecessary details of a broken callback, such as version, expiry
and type, from the afs_callback_break struct as they're not actually used
and make the list take more memory.
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
parent 00671912
...@@ -75,7 +75,7 @@ struct afs_callback { ...@@ -75,7 +75,7 @@ struct afs_callback {
struct afs_callback_break { struct afs_callback_break {
struct afs_fid fid; /* File identifier */ struct afs_fid fid; /* File identifier */
struct afs_callback cb; /* Callback details */ //struct afs_callback cb; /* Callback details */
}; };
#define AFSCBMAX 50 /* maximum callbacks transferred per bulk op */ #define AFSCBMAX 50 /* maximum callbacks transferred per bulk op */
......
...@@ -310,14 +310,10 @@ void afs_break_callbacks(struct afs_server *server, size_t count, ...@@ -310,14 +310,10 @@ void afs_break_callbacks(struct afs_server *server, size_t count,
/* TODO: Sort the callback break list by volume ID */ /* TODO: Sort the callback break list by volume ID */
for (; count > 0; callbacks++, count--) { for (; count > 0; callbacks++, count--) {
_debug("- Fid { vl=%08llx n=%llu u=%u } CB { v=%u x=%u t=%u }", _debug("- Fid { vl=%08llx n=%llu u=%u }",
callbacks->fid.vid, callbacks->fid.vid,
callbacks->fid.vnode, callbacks->fid.vnode,
callbacks->fid.unique, callbacks->fid.unique);
callbacks->cb.version,
callbacks->cb.expiry,
callbacks->cb.type
);
afs_break_one_callback(server, &callbacks->fid); afs_break_one_callback(server, &callbacks->fid);
} }
......
...@@ -218,7 +218,6 @@ static int afs_deliver_cb_callback(struct afs_call *call) ...@@ -218,7 +218,6 @@ static int afs_deliver_cb_callback(struct afs_call *call)
cb->fid.vid = ntohl(*bp++); cb->fid.vid = ntohl(*bp++);
cb->fid.vnode = ntohl(*bp++); cb->fid.vnode = ntohl(*bp++);
cb->fid.unique = ntohl(*bp++); cb->fid.unique = ntohl(*bp++);
cb->cb.type = AFSCM_CB_UNTYPED;
} }
afs_extract_to_tmp(call); afs_extract_to_tmp(call);
...@@ -236,24 +235,18 @@ static int afs_deliver_cb_callback(struct afs_call *call) ...@@ -236,24 +235,18 @@ static int afs_deliver_cb_callback(struct afs_call *call)
if (call->count2 != call->count && call->count2 != 0) if (call->count2 != call->count && call->count2 != 0)
return afs_protocol_error(call, -EBADMSG, return afs_protocol_error(call, -EBADMSG,
afs_eproto_cb_count); afs_eproto_cb_count);
afs_extract_to_buf(call, call->count2 * 3 * 4); call->_iter = &call->iter;
iov_iter_discard(&call->iter, READ, call->count2 * 3 * 4);
call->unmarshall++; call->unmarshall++;
case 4: case 4:
_debug("extract CB array"); _debug("extract discard %zu/%u",
iov_iter_count(&call->iter), call->count2 * 3 * 4);
ret = afs_extract_data(call, false); ret = afs_extract_data(call, false);
if (ret < 0) if (ret < 0)
return ret; return ret;
_debug("unmarshall CB array");
cb = call->request;
bp = call->buffer;
for (loop = call->count2; loop > 0; loop--, cb++) {
cb->cb.version = ntohl(*bp++);
cb->cb.expiry = ntohl(*bp++);
cb->cb.type = ntohl(*bp++);
}
call->unmarshall++; call->unmarshall++;
case 5: case 5:
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment