Merge master.kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6

+17 -8
+5 -4
fs/ntfs/ChangeLog
··· 34 34 journals with two different restart pages. We sanity check both and 35 35 either use the only sane one or the more recent one of the two in the 36 36 case that both are valid. 37 - - Modify fs/ntfs/malloc.h::ntfs_malloc_nofs() to do the kmalloc() based 38 - allocations with __GFP_HIGHMEM, analogous to how the vmalloc() based 39 - allocations are done. 40 37 - Add fs/ntfs/malloc.h::ntfs_malloc_nofs_nofail() which is analogous to 41 38 ntfs_malloc_nofs() but it performs allocations with __GFP_NOFAIL and 42 39 hence cannot fail. ··· 87 90 in the first buffer head instead of a driver global spin lock to 88 91 improve scalability. 89 92 - Minor fix to error handling and error message display in 90 - 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. 91 98 92 99 2.1.23 - Implement extension of resident files and make writing safe as well as 93 100 many bug fixes, cleanups, and enhancements...
+1 -1
fs/ntfs/malloc.h
··· 45 45 if (likely(size <= PAGE_SIZE)) { 46 46 BUG_ON(!size); 47 47 /* kmalloc() has per-CPU caches so is faster for now. */ 48 - return kmalloc(PAGE_SIZE, gfp_mask); 48 + return kmalloc(PAGE_SIZE, gfp_mask & ~__GFP_HIGHMEM); 49 49 /* return (void *)__get_free_page(gfp_mask); */ 50 50 } 51 51 if (likely(size >> PAGE_SHIFT < num_physpages))
+11 -3
fs/ntfs/super.c
··· 126 126 if (*v) \ 127 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 137 #define NTFS_GETOPT_BOOL(option, variable) \ 130 138 if (!strcmp(p, option)) { \ 131 139 BOOL val; \ ··· 165 157 *v++ = 0; 166 158 NTFS_GETOPT("uid", uid) 167 159 else NTFS_GETOPT("gid", gid) 168 - else NTFS_GETOPT("umask", fmask = dmask) 169 - else NTFS_GETOPT("fmask", fmask) 170 - else NTFS_GETOPT("dmask", dmask) 160 + else NTFS_GETOPT_OCTAL("umask", fmask = dmask) 161 + else NTFS_GETOPT_OCTAL("fmask", fmask) 162 + else NTFS_GETOPT_OCTAL("dmask", dmask) 171 163 else NTFS_GETOPT("mft_zone_multiplier", mft_zone_multiplier) 172 164 else NTFS_GETOPT_WITH_DEFAULT("sloppy", sloppy, TRUE) 173 165 else NTFS_GETOPT_BOOL("show_sys_files", show_sys_files)