diff options
author | Weston Carvalho <westoncarvalho@google.com> | 2024-02-16 05:15:56 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-02-16 05:15:56 +0000 |
commit | cb9d415b90bede6861bb4e88e157859406b06912 (patch) | |
tree | e354ab12381059284f30757ad6158b66554fbca2 | |
parent | 5ff6b2b033543f8cd78456a245f239a6155f8723 (diff) | |
parent | ad08b154d685529bd35789d9f1b41e6a59947766 (diff) | |
download | storage-cb9d415b90bede6861bb4e88e157859406b06912.tar.gz |
Split storage_file_get_size am: ad08b154d6
Original change: https://android-review.googlesource.com/c/trusty/app/storage/+/2806244
Change-Id: I0949dcce7f16fc59d6139c2303c0d514b7fa484d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | client_tipc.c | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/client_tipc.c b/client_tipc.c index 3dc2a47..42a7bf8 100644 --- a/client_tipc.c +++ b/client_tipc.c @@ -919,45 +919,25 @@ err_invalid_input: return send_response(tipc_session, result, msg, out, out_size); } -static int storage_file_get_size( - struct storage_msg* msg, - struct storage_file_get_size_req* req, - size_t req_size, - struct storage_tipc_client_session* tipc_session) { - struct storage_client_session* session = &tipc_session->session; +static enum storage_err storage_file_get_size( + struct storage_client_session* session, + uint32_t handle, + uint64_t* size) { bool valid; struct file_handle* file; - enum storage_err result = STORAGE_NO_ERROR; - void* out = NULL; - size_t out_size = 0; - if (req_size != sizeof(*req)) { - SS_ERR("%s: inavlid request size (%zu)\n", __func__, req_size); - result = STORAGE_ERR_NOT_VALID; - goto err_invalid_input; - } - - file = get_file_handle(session, req->handle); + file = get_file_handle(session, handle); if (!file) { - SS_ERR("%s: invalid file handle (%" PRIx32 ")\n", __func__, - req->handle); - result = STORAGE_ERR_NOT_VALID; - goto err_invalid_input; + SS_ERR("%s: invalid file handle (%" PRIx32 ")\n", __func__, handle); + return STORAGE_ERR_NOT_VALID; } - struct storage_file_get_size_resp resp; - - valid = file_get_size(&session->tr, file, &resp.size); + valid = file_get_size(&session->tr, file, size); if (!valid) { - result = STORAGE_ERR_NOT_VALID; - goto err_invalid_input; + return STORAGE_ERR_NOT_VALID; } - out = &resp; - out_size = sizeof(resp); - -err_invalid_input: - return send_response(tipc_session, result, msg, out, out_size); + return STORAGE_NO_ERROR; } static enum storage_err storage_file_set_size( @@ -1135,6 +1115,25 @@ static enum storage_err storage_tipc_file_write( extract_storage_op_flags(msg->flags)); } +static enum storage_err storage_tipc_file_get_size( + struct storage_tipc_client_session* tipc_session, + struct storage_msg* msg, + struct storage_file_get_size_req* req, + size_t req_size) { + if (req_size != sizeof(*req)) { + SS_ERR("%s: invalid request size (%zu)\n", __func__, req_size); + return send_result(tipc_session, msg, STORAGE_ERR_NOT_VALID); + } + + struct storage_file_get_size_resp resp; + enum storage_err result = storage_file_get_size(&tipc_session->session, + req->handle, &resp.size); + if (result != STORAGE_NO_ERROR) { + return send_result(tipc_session, msg, result); + } + return send_response(tipc_session, result, msg, &resp, sizeof(resp)); +} + static enum storage_err storage_tipc_file_set_size( struct storage_client_session* session, struct storage_msg* msg, @@ -1361,7 +1360,8 @@ static int client_handle_msg(struct ipc_channel_context* ctx, case STORAGE_FILE_LIST: return storage_file_list(msg, payload, payload_len, tipc_session); case STORAGE_FILE_GET_SIZE: - return storage_file_get_size(msg, payload, payload_len, tipc_session); + return storage_tipc_file_get_size(tipc_session, msg, payload, + payload_len); case STORAGE_FILE_SET_SIZE: result = storage_tipc_file_set_size(session, msg, payload, payload_len); break; |