diff options
author | Sergey Bugaev <bugaevc@gmail.com> | 2023-05-09 00:31:03 +0300 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-05-10 02:16:00 +0200 |
commit | 4ba239ddbe936322bd7f9a8b17715ebaeb1cb800 (patch) | |
tree | 54d13689e60310babf35b5d9117278eade2ed758 /libdiskfs/dir-readdir.c | |
parent | edc6fe07c5a7f9ade000b3bfc17c030fe2086e21 (diff) | |
download | hurd-4ba239ddbe936322bd7f9a8b17715ebaeb1cb800.tar.gz hurd-4ba239ddbe936322bd7f9a8b17715ebaeb1cb800.tar.bz2 hurd-4ba239ddbe936322bd7f9a8b17715ebaeb1cb800.zip |
libdiskfs: Port to x86_64
Message-Id: <20230508213136.608575-9-bugaevc@gmail.com>
Diffstat (limited to 'libdiskfs/dir-readdir.c')
-rw-r--r-- | libdiskfs/dir-readdir.c | 14 |
1 files changed, 11 insertions, 3 deletions
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; } |