summaryrefslogtreecommitdiff
path: root/libdiskfs/fsys-options.c
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1995-06-09 21:06:30 +0000
committerMichael I. Bushnell <mib@gnu.org>1995-06-09 21:06:30 +0000
commit48bcdb8e4cb9bce2a763bfc340d06b93f358324a (patch)
tree6449f8c8022e76701e86492733a1a95f41e476b1 /libdiskfs/fsys-options.c
parent90af010a75a083f1b78a219c1f327b0b49392b2f (diff)
(diskfs_S_fsys_set_options): Bother validating FSYS and implementing
DO_CHILDREN.
Diffstat (limited to 'libdiskfs/fsys-options.c')
-rw-r--r--libdiskfs/fsys-options.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/libdiskfs/fsys-options.c b/libdiskfs/fsys-options.c
index e52f582e..6b4ed3c0 100644
--- a/libdiskfs/fsys-options.c
+++ b/libdiskfs/fsys-options.c
@@ -32,8 +32,24 @@ diskfs_S_fsys_set_options (fsys_t fsys,
{
int argc = argz_count (data, len);
char **argv = alloca (sizeof (char *) * (argc + 1));
+ struct port_info *pt = ports_lookup_port (diskfs_port_bucket, fsys,
+ diskfs_control_class);
+ int ret;
+ void dochild (struct trans_link *trans, void *arg)
+ {
+ fsys_set_options (trans->control, data, len, do_children);
+ }
+
+ if (!pt)
+ return EOPNOTSUPP;
+
+ if (do_children)
+ fshelp_translator_iterate (dochild, 0);
argz_extract (data, len, argv);
- return diskfs_set_options (argc, argv);
+ ret = diskfs_set_options (argc, argv);
+
+ ports_port_deref (pt);
+ return ret;
}