diff options
author | Justus Winter <justus@gnupg.org> | 2016-10-05 15:38:58 +0200 |
---|---|---|
committer | Justus Winter <justus@gnupg.org> | 2017-09-12 10:41:35 +0200 |
commit | 5fef1b7f22ec0ee3730b80bbf972dbf9a8995091 (patch) | |
tree | 29890aef362b5a8ebffb4721a1967b818a22a3af /libnetfs/file-syncfs.c | |
parent | 116552c075abf1d22057a608fee9d27684bcbbe5 (diff) | |
download | hurd-5fef1b7f22ec0ee3730b80bbf972dbf9a8995091.tar.gz hurd-5fef1b7f22ec0ee3730b80bbf972dbf9a8995091.tar.bz2 hurd-5fef1b7f22ec0ee3730b80bbf972dbf9a8995091.zip |
libfshelp: Add function to map over all active translators.
* libdiskfs/file-syncfs.c (diskfs_S_file_syncfs): Use the new function.
* libdiskfs/fsys-options.c (diskfs_S_fsys_set_options): Likewise.
* libdiskfs/fsys-syncfs.c (diskfs_S_fsys_syncfs): Likewise.
* libdiskfs/shutdown.c (diskfs_shutdown): Likewise.
* libfshelp/fshelp.h (fshelp_map_active_translators): New declaration.
* libfshelp/translator-list.c (fshelp_map_active_translators): New
function.
* libnetfs/file-syncfs.c (netfs_S_file_syncfs): Use the new function.
* libnetfs/fsys-set-options.c (netfs_S_fsys_set_options): Likewise.
* libnetfs/fsys-syncfs.c (netfs_S_fsys_syncfs): Likewise.
* libnetfs/shutdown.c (netfs_shutdown): Likewise.
Diffstat (limited to 'libnetfs/file-syncfs.c')
-rw-r--r-- | libnetfs/file-syncfs.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libnetfs/file-syncfs.c b/libnetfs/file-syncfs.c index 2302e926..0b14bb87 100644 --- a/libnetfs/file-syncfs.c +++ b/libnetfs/file-syncfs.c @@ -20,6 +20,21 @@ #include "netfs.h" #include "fs_S.h" +#include <hurd/fsys.h> + +struct args +{ + int wait; +}; + +static error_t +helper (void *cookie, const char *name, mach_port_t control) +{ + struct args *args = cookie; + (void) name; + fsys_syncfs (control, args->wait, 1); + return 0; +} error_t netfs_S_file_syncfs (struct protid *user, @@ -27,11 +42,13 @@ netfs_S_file_syncfs (struct protid *user, int dochildren) { error_t err; - + struct args args = { wait }; + if (!user) return EOPNOTSUPP; - - /* Translators not yet supported by netfs. XXX */ + + if (dochildren) + fshelp_map_active_translators (helper, &args); pthread_mutex_lock (&user->po->np->lock); err = netfs_attempt_syncfs (user->user, wait); |