From a8b6031e712ad78e2ae5ebe3a09c8de0991e2f7b Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Tue, 9 May 2023 00:31:18 +0300 Subject: storeio: Port to x86_64 Message-Id: <20230508213136.608575-24-bugaevc@gmail.com> --- storeio/io.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'storeio') diff --git a/storeio/io.c b/storeio/io.c index 3c4cb9ff..f01e1918 100644 --- a/storeio/io.c +++ b/storeio/io.c @@ -86,13 +86,20 @@ trivfs_S_io_read (struct trivfs_protid *cred, data_t *data, mach_msg_type_name_t *data_len, off_t offs, vm_size_t amount) { + error_t err; + size_t data_size = *data_len; + if (! cred) return EOPNOTSUPP; else if (! (cred->po->openmodes & O_READ)) return EBADF; - else - return open_read ((struct open *)cred->po->hook, - offs, amount, (void **)data, data_len); + + err = open_read ((struct open *)cred->po->hook, + offs, amount, (void **)data, &data_size); + if (err) + return err; + *data_len = data_size; + return 0; } /* Tell how much data can be read from the object without blocking for -- cgit v1.2.3