diff options
-rw-r--r-- | fs/ntfs/ChangeLog | 6 | ||||
-rw-r--r-- | fs/ntfs/super.c | 14 |
2 files changed, 16 insertions, 4 deletions
diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog index e4fd6134244d..7f4007242893 100644 --- a/fs/ntfs/ChangeLog +++ b/fs/ntfs/ChangeLog | |||
@@ -90,7 +90,11 @@ ToDo/Notes: | |||
90 | in the first buffer head instead of a driver global spin lock to | 90 | in the first buffer head instead of a driver global spin lock to |
91 | improve scalability. | 91 | improve scalability. |
92 | - Minor fix to error handling and error message display in | 92 | - Minor fix to error handling and error message display in |
93 | fs/ntfs/aops.c::ntfs_prepare_nonresident_write(). | 93 | fs/ntfs/aops.c::ntfs_prepare_nonresident_write(). |
94 | - Change the mount options {u,f,d}mask to always parse the number as | ||
95 | an octal number to conform to how chmod(1) works, too. Thanks to | ||
96 | Giuseppe Bilotta and Horst von Brand for pointing out the errors of | ||
97 | my ways. | ||
94 | 98 | ||
95 | 2.1.23 - Implement extension of resident files and make writing safe as well as | 99 | 2.1.23 - Implement extension of resident files and make writing safe as well as |
96 | many bug fixes, cleanups, and enhancements... | 100 | many bug fixes, cleanups, and enhancements... |
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index b2b392961268..453d0d51ea4b 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c | |||
@@ -126,6 +126,14 @@ static BOOL parse_options(ntfs_volume *vol, char *opt) | |||
126 | if (*v) \ | 126 | if (*v) \ |
127 | goto needs_val; \ | 127 | goto needs_val; \ |
128 | } | 128 | } |
129 | #define NTFS_GETOPT_OCTAL(option, variable) \ | ||
130 | if (!strcmp(p, option)) { \ | ||
131 | if (!v || !*v) \ | ||
132 | goto needs_arg; \ | ||
133 | variable = simple_strtoul(ov = v, &v, 8); \ | ||
134 | if (*v) \ | ||
135 | goto needs_val; \ | ||
136 | } | ||
129 | #define NTFS_GETOPT_BOOL(option, variable) \ | 137 | #define NTFS_GETOPT_BOOL(option, variable) \ |
130 | if (!strcmp(p, option)) { \ | 138 | if (!strcmp(p, option)) { \ |
131 | BOOL val; \ | 139 | BOOL val; \ |
@@ -157,9 +165,9 @@ static BOOL parse_options(ntfs_volume *vol, char *opt) | |||
157 | *v++ = 0; | 165 | *v++ = 0; |
158 | NTFS_GETOPT("uid", uid) | 166 | NTFS_GETOPT("uid", uid) |
159 | else NTFS_GETOPT("gid", gid) | 167 | else NTFS_GETOPT("gid", gid) |
160 | else NTFS_GETOPT("umask", fmask = dmask) | 168 | else NTFS_GETOPT_OCTAL("umask", fmask = dmask) |
161 | else NTFS_GETOPT("fmask", fmask) | 169 | else NTFS_GETOPT_OCTAL("fmask", fmask) |
162 | else NTFS_GETOPT("dmask", dmask) | 170 | else NTFS_GETOPT_OCTAL("dmask", dmask) |
163 | else NTFS_GETOPT("mft_zone_multiplier", mft_zone_multiplier) | 171 | else NTFS_GETOPT("mft_zone_multiplier", mft_zone_multiplier) |
164 | else NTFS_GETOPT_WITH_DEFAULT("sloppy", sloppy, TRUE) | 172 | else NTFS_GETOPT_WITH_DEFAULT("sloppy", sloppy, TRUE) |
165 | else NTFS_GETOPT_BOOL("show_sys_files", show_sys_files) | 173 | else NTFS_GETOPT_BOOL("show_sys_files", show_sys_files) |