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: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -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;
|
||||
|
@@ -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]");
|
||||
|
@@ -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 */
|
||||
|
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user