Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1f081ce authored by David S. Miller's avatar David S. Miller
Browse files

Merge tag 'rxrpc-rewrite-20161013' of...

Merge tag 'rxrpc-rewrite-20161013' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs



David Howells says:

====================
rxrpc: Fixes

This set of patches contains a bunch of fixes:

 (1) Fix use of kunmap() after change from kunmap_atomic() within AFS.

 (2) Don't use of ERR_PTR() with an always zero value.

 (3) Check the right error when using ip6_route_output().

 (4) Be consistent about whether call->operation_ID is BE or CPU-E within
     AFS.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents f56f7d2e 50a2c953
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -91,11 +91,9 @@ static const struct afs_call_type afs_SRXCBTellMeAboutYourself = {
 */
bool afs_cm_incoming_call(struct afs_call *call)
{
	u32 operation_id = ntohl(call->operation_ID);
	_enter("{CB.OP %u}", call->operation_ID);

	_enter("{CB.OP %u}", operation_id);

	switch (operation_id) {
	switch (call->operation_ID) {
	case CBCallBack:
		call->type = &afs_SRXCBCallBack;
		return true;
+2 −2
Original line number Diff line number Diff line
@@ -364,7 +364,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
			buffer = kmap(page);
			ret = afs_extract_data(call, buffer,
					       call->count, true);
			kunmap(buffer);
			kunmap(page);
			if (ret < 0)
				return ret;
		}
@@ -397,7 +397,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
		page = call->reply3;
		buffer = kmap(page);
		memset(buffer + call->count, 0, PAGE_SIZE - call->count);
		kunmap(buffer);
		kunmap(page);
	}

	_leave(" = 0 [done]");
+1 −1
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ struct afs_call {
	bool			need_attention;	/* T if RxRPC poked us */
	u16			service_id;	/* RxRPC service ID to call */
	__be16			port;		/* target UDP port */
	__be32			operation_ID;	/* operation ID for an incoming call */
	u32			operation_ID;	/* operation ID for an incoming call */
	u32			count;		/* count for use in unmarshalling */
	__be32			tmp;		/* place to extract temporary data */
	afs_dataversion_t	store_version;	/* updated version expected from store */
+2 −1
Original line number Diff line number Diff line
@@ -676,10 +676,11 @@ static int afs_deliver_cm_op_id(struct afs_call *call)
	ASSERTCMP(call->offset, <, 4);

	/* the operation ID forms the first four bytes of the request data */
	ret = afs_extract_data(call, &call->operation_ID, 4, true);
	ret = afs_extract_data(call, &call->tmp, 4, true);
	if (ret < 0)
		return ret;

	call->operation_ID = ntohl(call->tmp);
	call->state = AFS_CALL_AWAIT_REQUEST;
	call->offset = 0;

+1 −1
Original line number Diff line number Diff line
@@ -276,7 +276,7 @@ struct rxrpc_call *rxrpc_new_client_call(struct rxrpc_sock *rx,
		goto error;

	trace_rxrpc_call(call, rxrpc_call_connected, atomic_read(&call->usage),
			 here, ERR_PTR(ret));
			 here, NULL);

	spin_lock_bh(&call->conn->params.peer->lock);
	hlist_add_head(&call->error_link,
Loading