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

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ struct afs_callback {

struct afs_callback_break {
	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 */
+2 −6
Original line number Diff line number Diff line
@@ -310,14 +310,10 @@ void afs_break_callbacks(struct afs_server *server, size_t count,
	/* TODO: Sort the callback break list by volume ID */

	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.vnode,
		       callbacks->fid.unique,
		       callbacks->cb.version,
		       callbacks->cb.expiry,
		       callbacks->cb.type
		       );
		       callbacks->fid.unique);
		afs_break_one_callback(server, &callbacks->fid);
	}

+5 −12
Original line number Diff line number Diff line
@@ -218,7 +218,6 @@ static int afs_deliver_cb_callback(struct afs_call *call)
			cb->fid.vid	= ntohl(*bp++);
			cb->fid.vnode	= ntohl(*bp++);
			cb->fid.unique	= ntohl(*bp++);
			cb->cb.type	= AFSCM_CB_UNTYPED;
		}

		afs_extract_to_tmp(call);
@@ -236,24 +235,18 @@ static int afs_deliver_cb_callback(struct afs_call *call)
		if (call->count2 != call->count && call->count2 != 0)
			return afs_protocol_error(call, -EBADMSG,
						  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++;

	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);
		if (ret < 0)
			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++;
	case 5:
		break;