OSDN Git Service

Pass default_permissions to FUSE.
authorrelan <relan@users.noreply.github.com>
Wed, 14 Jan 2015 09:53:19 +0000 (09:53 +0000)
committerrelan <relan@users.noreply.github.com>
Mon, 24 Aug 2015 05:26:17 +0000 (08:26 +0300)
This makes umask, dmask and fmask options work out-of-the-box.

Signed-off-by: Helg Bredow <xx404@msn.com>
fuse/main.c
libexfat/mount.c

index 58b7b2f..08acea5 100644 (file)
@@ -41,7 +41,7 @@
 #endif
 
 const char* default_options = "ro_fallback,allow_other,blkdev,big_writes,"
-               "defer_permissions";
+               "default_permissions";
 
 struct exfat ef;
 
index 2ebf436..bb4dd09 100644 (file)
@@ -84,13 +84,11 @@ static bool match_option(const char* options, const char* option_name)
 
 static void parse_options(struct exfat* ef, const char* options)
 {
-       int sys_umask = umask(0);
        int opt_umask;
 
-       umask(sys_umask); /* restore umask */
-       opt_umask = get_int_option(options, "umask", 8, sys_umask);
-       ef->dmask = get_int_option(options, "dmask", 8, opt_umask) & 0777;
-       ef->fmask = get_int_option(options, "fmask", 8, opt_umask) & 0777;
+       opt_umask = get_int_option(options, "umask", 8, 0);
+       ef->dmask = get_int_option(options, "dmask", 8, opt_umask);
+       ef->fmask = get_int_option(options, "fmask", 8, opt_umask);
 
        ef->uid = get_int_option(options, "uid", 10, geteuid());
        ef->gid = get_int_option(options, "gid", 10, getegid());