From 4ba239ddbe936322bd7f9a8b17715ebaeb1cb800 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Tue, 9 May 2023 00:31:03 +0300 Subject: libdiskfs: Port to x86_64 Message-Id: <20230508213136.608575-9-bugaevc@gmail.com> --- libdiskfs/dir-readdir.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'libdiskfs/dir-readdir.c') diff --git a/libdiskfs/dir-readdir.c b/libdiskfs/dir-readdir.c index 2a62b367..82a9720f 100644 --- a/libdiskfs/dir-readdir.c +++ b/libdiskfs/dir-readdir.c @@ -26,7 +26,7 @@ kern_return_t diskfs_S_dir_readdir (struct protid *cred, data_t *data, - size_t *datacnt, + mach_msg_type_number_t *datacnt, boolean_t *data_dealloc, int entry, int nentries, @@ -35,6 +35,7 @@ diskfs_S_dir_readdir (struct protid *cred, { error_t err; struct node *np; + size_t data_len = *datacnt; if (!cred) return EOPNOTSUPP; @@ -54,8 +55,15 @@ diskfs_S_dir_readdir (struct protid *cred, return ENOTDIR; } - err = diskfs_get_directs (np, entry, nentries, data, datacnt, bufsiz, amt); + err = diskfs_get_directs (np, entry, nentries, + data, &data_len, + bufsiz, amt); *data_dealloc = 1; /* XXX */ pthread_mutex_unlock (&np->lock); - return err; + + if (err) + return err; + + *datacnt = data_len; + return 0; } -- cgit v1.2.3