aboutsummaryrefslogtreecommitdiff
path: root/libdiskfs/opts-append-std.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdiskfs/opts-append-std.c')
-rw-r--r--libdiskfs/opts-append-std.c41
1 files changed, 26 insertions, 15 deletions
diff --git a/libdiskfs/opts-append-std.c b/libdiskfs/opts-append-std.c
index d3da031d..b951bf93 100644
--- a/libdiskfs/opts-append-std.c
+++ b/libdiskfs/opts-append-std.c
@@ -1,8 +1,8 @@
/* Get standard diskfs run-time options
- Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+ Copyright (C) 1995, 96,97,98,99,2002 Free Software Foundation, Inc.
- Written by Miles Bader <miles@gnu.ai.mit.edu>
+ Written by Miles Bader <miles@gnu.org>
This file is part of the GNU Hurd.
@@ -26,7 +26,7 @@
#include "priv.h"
error_t
-diskfs_append_std_options (char **argz, unsigned *argz_len)
+diskfs_append_std_options (char **argz, size_t *argz_len)
{
error_t err;
extern int diskfs_sync_interval;
@@ -35,21 +35,32 @@ diskfs_append_std_options (char **argz, unsigned *argz_len)
err = argz_add (argz, argz_len, "--readonly");
else
err = argz_add (argz, argz_len, "--writable");
- if (err)
- return err;
- if (diskfs_synchronous)
- err = argz_add (argz, argz_len, "--sync");
- else if (diskfs_sync_interval == 0)
- err = argz_add (argz, argz_len, "--nosync");
- else
+ if (!err && _diskfs_nosuid)
+ err = argz_add (argz, argz_len, "--no-suid");
+ if (!err && _diskfs_noexec)
+ err = argz_add (argz, argz_len, "--no-exec");
+ if (!err && _diskfs_noatime)
+ err = argz_add (argz, argz_len, "--no-atime");
+ if (!err && _diskfs_no_inherit_dir_group)
+ err = argz_add (argz, argz_len, "--no-inherit-dir-group");
+
+ if (! err)
{
- char buf[80];
- sprintf (buf, "--sync=%d", diskfs_sync_interval);
- err = argz_add (argz, argz_len, buf);
+ if (diskfs_synchronous)
+ err = argz_add (argz, argz_len, "--sync");
+ else if (DEFAULT_SYNC_INTERVAL != diskfs_sync_interval)
+ {
+ if (diskfs_sync_interval == 0)
+ err = argz_add (argz, argz_len, "--no-sync");
+ else
+ {
+ char buf[80];
+ sprintf (buf, "--sync=%d", diskfs_sync_interval);
+ err = argz_add (argz, argz_len, buf);
+ }
+ }
}
- if (err)
- free (argz); /* Free the first option allocated. */
return err;
}