aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeston Carvalho <westoncarvalho@google.com>2024-02-16 05:15:56 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2024-02-16 05:15:56 +0000
commitcb9d415b90bede6861bb4e88e157859406b06912 (patch)
treee354ab12381059284f30757ad6158b66554fbca2
parent5ff6b2b033543f8cd78456a245f239a6155f8723 (diff)
parentad08b154d685529bd35789d9f1b41e6a59947766 (diff)
downloadstorage-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.c62
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;