diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-01-30 10:53:46 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-02-25 11:18:59 +0100 |
commit | 9366d6b2e48ba409366adc0516825c41a86dec9b (patch) | |
tree | 10431eba7bdaf8bfbb8811a5c4fed93616c5eb0d /libnetfs | |
parent | d4129a39dda08e8cfbc002461e1e76103de8f108 (diff) |
hurd: fix the get-children and get-source procedures
* hurd/fs.defs: Add file_get_children and file_get_source.
* hurd/fsys.defs: Remove fsys_get_children and fsys_get_source.
* libdiskfs/fsys-get-children.c: Rename and adapt accordingly.
* libdiskfs/fsys-get-source.c: Likewise.
* libnetfs/fsys-get-children.c: Likewise.
* libnetfs/fsys-get-source.c: Likewise.
* libtrivfs/fsys-get-children.c: Likewise.
* libtrivfs/fsys-get-source.c: Likewise.
* libdiskfs/diskfs.h: Adapt prototype and comment.
* libnetfs/netfs.h: Likewise.
* libtrivfs/trivfs.h: Likewise.
* libdiskfs/get-source.c: Adapt default implementation, provide
diskfs_disk_name by default.
* libnetfs/netfs.h: Adapt default implementation.
* libtrivfs/get-source.c: Likewise.
* libdiskfs/Makefile: Adapt accordingly.
* libnetfs/Makefile: Likewise.
* libtrivfs/Makefile: Likewise.
* trans/symlink.c: Likewise.
* trans/mtab.c: Likewise.
Diffstat (limited to 'libnetfs')
-rw-r--r-- | libnetfs/Makefile | 2 | ||||
-rw-r--r-- | libnetfs/file-get-children.c (renamed from libnetfs/fsys-get-children.c) | 14 | ||||
-rw-r--r-- | libnetfs/file-get-source.c (renamed from libnetfs/fsys-get-source.c) | 15 | ||||
-rw-r--r-- | libnetfs/get-source.c | 2 | ||||
-rw-r--r-- | libnetfs/netfs.h | 9 |
5 files changed, 21 insertions, 21 deletions
diff --git a/libnetfs/Makefile b/libnetfs/Makefile index 1a71b499..c3830c03 100644 --- a/libnetfs/Makefile +++ b/libnetfs/Makefile @@ -45,7 +45,7 @@ IOSRCS= io-read.c io-readable.c io-seek.c io-write.c io-stat.c io-async.c \ io-version.c FSYSSRCS= fsys-syncfs.c fsys-getroot.c fsys-get-options.c fsys-set-options.c \ - fsys-goaway.c fsysstubs.c fsys-get-children.c fsys-get-source.c + fsys-goaway.c fsysstubs.c file-get-children.c file-get-source.c IFSOCKSRCS= OTHERSRCS= drop-node.c init-init.c make-node.c make-peropen.c make-protid.c \ diff --git a/libnetfs/fsys-get-children.c b/libnetfs/file-get-children.c index fb3af914..80a727f5 100644 --- a/libnetfs/fsys-get-children.c +++ b/libnetfs/file-get-children.c @@ -1,4 +1,4 @@ -/* fsys_get_children +/* file_get_children Copyright (C) 2013 Free Software Foundation, Inc. @@ -27,18 +27,14 @@ filesystem. CHILDREN is an argz vector containing file names relative to the root of the receiving translator. */ error_t -netfs_S_fsys_get_children (fsys_t server, - mach_port_t reply, - mach_msg_type_name_t replyPoly, +netfs_S_file_get_children (struct protid *cred, char **children, mach_msg_type_number_t *children_len) { error_t err; - - struct protid *cred = ports_lookup_port (netfs_port_bucket, - server, - netfs_protid_class); - if (! cred) + if (! cred + || cred->pi.bucket != netfs_port_bucket + || cred->pi.class != netfs_protid_class) return EOPNOTSUPP; /* check_access performs the same permission check as is normally diff --git a/libnetfs/fsys-get-source.c b/libnetfs/file-get-source.c index 6143d10b..8b73d5a1 100644 --- a/libnetfs/fsys-get-source.c +++ b/libnetfs/file-get-source.c @@ -1,4 +1,4 @@ -/* fsys_get_source +/* file_get_source Copyright (C) 2013 Free Software Foundation, Inc. @@ -20,15 +20,18 @@ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ #include "priv.h" -#include "fsys_S.h" +#include "fs_S.h" /* Return information about the source of the receiving filesystem. */ error_t -netfs_S_fsys_get_source (fsys_t server, - mach_port_t reply, - mach_msg_type_name_t replyPoly, +netfs_S_file_get_source (struct protid *cred, char *source) { - return netfs_get_source (source); + if (! cred + || cred->pi.bucket != netfs_port_bucket + || cred->pi.class != netfs_protid_class) + return EOPNOTSUPP; + + return netfs_get_source (cred, source, 1024 /* XXX */); } diff --git a/libnetfs/get-source.c b/libnetfs/get-source.c index 71a96390..73e48be8 100644 --- a/libnetfs/get-source.c +++ b/libnetfs/get-source.c @@ -22,7 +22,7 @@ #include "priv.h" error_t -netfs_get_source (char *source) +netfs_get_source (struct protid *cred, char *source, size_t source_len) { return EOPNOTSUPP; } diff --git a/libnetfs/netfs.h b/libnetfs/netfs.h index e10ccae0..5d50f57d 100644 --- a/libnetfs/netfs.h +++ b/libnetfs/netfs.h @@ -315,10 +315,11 @@ error_t netfs_file_get_storage_info (struct iouser *cred, mach_msg_type_number_t *data_len); /* The user may define this function. The function must set source to - the source device of the filesystem. The function may return an - EOPNOTSUPP to indicate that the concept of a source device is not - applicable. The default function always returns EOPNOTSUPP. */ -error_t netfs_get_source (char *source); + the source of CRED. The function may return an EOPNOTSUPP to + indicate that the concept of a source device is not applicable. The + default function always returns EOPNOTSUPP. */ +error_t netfs_get_source (struct protid *cred, + char *source, size_t source_len); /* Option parsing */ |