rxrpc: Support service upgrade from a kernel service
[linux-2.6-microblaze.git] / fs / afs / rxrpc.c
index 0bf191f..172a4f9 100644 (file)
@@ -387,7 +387,8 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
                                         tx_total_len, gfp,
                                         (async ?
                                          afs_wake_up_async_call :
-                                         afs_wake_up_call_waiter));
+                                         afs_wake_up_call_waiter),
+                                        call->upgrade);
        call->key = NULL;
        if (IS_ERR(rxcall)) {
                ret = PTR_ERR(rxcall);
@@ -443,7 +444,7 @@ error_do_abort:
                abort_code = 0;
                offset = 0;
                rxrpc_kernel_recv_data(afs_socket, rxcall, NULL, 0, &offset,
-                                      false, &abort_code);
+                                      false, &abort_code, &call->service_id);
                ret = call->type->abort_to_error(abort_code);
        }
 error_kill_call:
@@ -471,7 +472,8 @@ static void afs_deliver_to_call(struct afs_call *call)
                        size_t offset = 0;
                        ret = rxrpc_kernel_recv_data(afs_socket, call->rxcall,
                                                     NULL, 0, &offset, false,
-                                                    &call->abort_code);
+                                                    &call->abort_code,
+                                                    &call->service_id);
                        trace_afs_recv_data(call, 0, offset, false, ret);
 
                        if (ret == -EINPROGRESS || ret == -EAGAIN)
@@ -851,7 +853,8 @@ int afs_extract_data(struct afs_call *call, void *buf, size_t count,
 
        ret = rxrpc_kernel_recv_data(afs_socket, call->rxcall,
                                     buf, count, &call->offset,
-                                    want_more, &call->abort_code);
+                                    want_more, &call->abort_code,
+                                    &call->service_id);
        trace_afs_recv_data(call, count, call->offset, want_more, ret);
        if (ret == 0 || ret == -EAGAIN)
                return ret;