]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zfs/zpl_super.c
Posix ACL Support
[mirror_zfs.git] / module / zfs / zpl_super.c
index eee4a50e03a569932e22c270e7c492e4d8ec158a..72859ac5c1c4c4f4c8300d50dd42ed048ea34507 100644 (file)
@@ -179,28 +179,48 @@ zpl_umount_begin(struct super_block *sb)
 }
 
 /*
- * The Linux VFS automatically handles the following flags:
- * MNT_NOSUID, MNT_NODEV, MNT_NOEXEC, MNT_NOATIME, MNT_READONLY
+ * ZFS specific features must be explicitly handled here, the VFS will
+ * automatically handled the following generic functionality.
+ *
+ *   MNT_NOSUID,
+ *   MNT_NODEV,
+ *   MNT_NOEXEC,
+ *   MNT_NOATIME,
+ *   MNT_NODIRATIME,
+ *   MNT_READONLY,
+ *   MNT_STRICTATIME,
+ *   MS_SYNCHRONOUS,
+ *   MS_DIRSYNC,
+ *   MS_MANDLOCK.
  */
-#ifdef HAVE_SHOW_OPTIONS_WITH_DENTRY
 static int
-zpl_show_options(struct seq_file *seq, struct dentry *root)
+__zpl_show_options(struct seq_file *seq, zfs_sb_t *zsb)
 {
-       zfs_sb_t *zsb = root->d_sb->s_fs_info;
-
        seq_printf(seq, ",%s", zsb->z_flags & ZSB_XATTR ? "xattr" : "noxattr");
 
+       switch (zsb->z_acl_type) {
+       case ZFS_ACLTYPE_POSIXACL:
+               seq_puts(seq, ",posixacl");
+               break;
+       default:
+               seq_puts(seq, ",noacl");
+               break;
+       }
+
        return (0);
 }
+
+#ifdef HAVE_SHOW_OPTIONS_WITH_DENTRY
+static int
+zpl_show_options(struct seq_file *seq, struct dentry *root)
+{
+       return __zpl_show_options(seq, root->d_sb->s_fs_info);
+}
 #else
 static int
 zpl_show_options(struct seq_file *seq, struct vfsmount *vfsp)
 {
-       zfs_sb_t *zsb = vfsp->mnt_sb->s_fs_info;
-
-       seq_printf(seq, ",%s", zsb->z_flags & ZSB_XATTR ? "xattr" : "noxattr");
-
-       return (0);
+       return __zpl_show_options(seq, vfsp->mnt_sb->s_fs_info);
 }
 #endif /* HAVE_SHOW_OPTIONS_WITH_DENTRY */