* mount.cc (struct opt): Add "dos" and "ihash" options.
(fillout_mntent): Ditto. * path.cc (path_conv::get_nt_native_path): Use path_conv's has_dos_filenames_only method. (path_conv::check): Add PATH_IHASH flag if FS has unreliable inode numbers. (symlink_info::check_shortcut): Or symlink flags to pflags. (symlink_info::check_sysfile): Ditto. Change test accordingly. (symlink_info::check_reparse_point): Ditto. (symlink_info::check_nfs_symlink): Ditto. (symlink_info::check): Check PATH_DOS flag in call to get_nt_native_path to utilize mount flag. Ditto in test for potential restarting. Set PATH_DOS if FS only allows DOS filename rules. * path.h (enum path_types): Add PATH_DOS and PATH_IHASH. (path_conv::hasgood_inode): Check PATH_IHASH instead of fs.hasgood_inode. (path_conv::has_dos_filenames_only): New method. * include/sys/mount.h (MOUNT_DOS): New mount flag. (MOUNT_IHASH): Ditto.
This commit is contained in:
@@ -932,7 +932,9 @@ struct opt
|
||||
{"auto", 0, 0},
|
||||
{"binary", MOUNT_BINARY, 0},
|
||||
{"cygexec", MOUNT_CYGWIN_EXEC, 0},
|
||||
{"dos", MOUNT_DOS, 0},
|
||||
{"exec", MOUNT_EXEC, 0},
|
||||
{"ihash", MOUNT_IHASH, 0},
|
||||
{"noacl", MOUNT_NOACL, 0},
|
||||
{"nosuid", 0, 0},
|
||||
{"notexec", MOUNT_NOTEXEC, 0},
|
||||
@@ -1553,6 +1555,12 @@ fillout_mntent (const char *native_path, const char *posix_path, unsigned flags)
|
||||
if (flags & MOUNT_NOACL)
|
||||
strcat (_my_tls.locals.mnt_opts, (char *) ",noacl");
|
||||
|
||||
if (flags & MOUNT_DOS)
|
||||
strcat (_my_tls.locals.mnt_opts, (char *) ",dos");
|
||||
|
||||
if (flags & MOUNT_IHASH)
|
||||
strcat (_my_tls.locals.mnt_opts, (char *) ",ihash");
|
||||
|
||||
if (flags & MOUNT_NOPOSIX)
|
||||
strcat (_my_tls.locals.mnt_opts, (char *) ",posix=0");
|
||||
|
||||
|
Reference in New Issue
Block a user