aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorixhamza <[email protected]>2022-07-14 22:38:16 +0500
committerGitHub <[email protected]>2022-07-14 10:38:16 -0700
commitf371cc18f81168c74314b77480862b6c516e15d5 (patch)
tree749fb6f4f703a3c371adf9c5ac44e37a0420d15c
parent9fe2f262aa24e3eda716787005cd127642aed22b (diff)
Expose ZFS dataset case sensitivity setting via sb_opts
Makes the case sensitivity setting visible on Linux in /proc/mounts. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Alexander Motin <[email protected]> Signed-off-by: Ameer Hamza <[email protected]> Closes #13607
-rw-r--r--include/sys/mntent.h3
-rw-r--r--lib/libzfs/os/linux/libzfs_mount_os.c7
-rw-r--r--module/os/linux/zfs/zpl_super.c12
3 files changed, 22 insertions, 0 deletions
diff --git a/include/sys/mntent.h b/include/sys/mntent.h
index d5e75daf0..5bb7e080c 100644
--- a/include/sys/mntent.h
+++ b/include/sys/mntent.h
@@ -108,5 +108,8 @@
#define MNTOPT_NOACL "noacl" /* likewise */
#define MNTOPT_POSIXACL "posixacl" /* likewise */
#define MNTOPT_MNTPOINT "mntpoint" /* mount point hint */
+#define MNTOPT_CASESENSITIVE "casesensitive" /* case sensitivity */
+#define MNTOPT_CASEINSENSITIVE "caseinsensitive" /* case insensitivity */
+#define MNTOPT_CASEMIXED "casemixed" /* case mixed */
#endif /* _SYS_MNTENT_H */
diff --git a/lib/libzfs/os/linux/libzfs_mount_os.c b/lib/libzfs/os/linux/libzfs_mount_os.c
index 1718cf62a..f0bf3dcc6 100644
--- a/lib/libzfs/os/linux/libzfs_mount_os.c
+++ b/lib/libzfs/os/linux/libzfs_mount_os.c
@@ -84,6 +84,13 @@ static const option_map_t option_map[] = {
{ MNTOPT_ACL, MS_POSIXACL, ZS_COMMENT },
{ MNTOPT_NOACL, MS_COMMENT, ZS_COMMENT },
{ MNTOPT_POSIXACL, MS_POSIXACL, ZS_COMMENT },
+ /*
+ * Case sensitive options are just listed here to silently
+ * ignore the error if passed with zfs mount command.
+ */
+ { MNTOPT_CASESENSITIVE, MS_COMMENT, ZS_COMMENT },
+ { MNTOPT_CASEINSENSITIVE, MS_COMMENT, ZS_COMMENT },
+ { MNTOPT_CASEMIXED, MS_COMMENT, ZS_COMMENT },
#ifdef MS_NOATIME
{ MNTOPT_NOATIME, MS_NOATIME, ZS_COMMENT },
{ MNTOPT_ATIME, MS_COMMENT, ZS_COMMENT },
diff --git a/module/os/linux/zfs/zpl_super.c b/module/os/linux/zfs/zpl_super.c
index 88b01145c..cf879a289 100644
--- a/module/os/linux/zfs/zpl_super.c
+++ b/module/os/linux/zfs/zpl_super.c
@@ -233,6 +233,18 @@ __zpl_show_options(struct seq_file *seq, zfsvfs_t *zfsvfs)
}
#endif /* CONFIG_FS_POSIX_ACL */
+ switch (zfsvfs->z_case) {
+ case ZFS_CASE_SENSITIVE:
+ seq_puts(seq, ",casesensitive");
+ break;
+ case ZFS_CASE_INSENSITIVE:
+ seq_puts(seq, ",caseinsensitive");
+ break;
+ default:
+ seq_puts(seq, ",casemixed");
+ break;
+ }
+
return (0);
}