diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/zfs/zpl_super.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/module/zfs/zpl_super.c b/module/zfs/zpl_super.c index 3abb26a9e..0e6e9360f 100644 --- a/module/zfs/zpl_super.c +++ b/module/zfs/zpl_super.c @@ -139,21 +139,31 @@ zpl_remount_fs(struct super_block *sb, int *flags, char *data) return (error); } +/* + * The Linux VFS automatically handles the following flags: + * MNT_NOSUID, MNT_NODEV, MNT_NOEXEC, MNT_NOATIME, MNT_READONLY + */ +#ifdef HAVE_SHOW_OPTIONS_WITH_DENTRY static int -zpl_show_options(struct seq_file *seq, struct vfsmount *vfsp) +zpl_show_options(struct seq_file *seq, struct dentry *root) { - struct super_block *sb = vfsp->mnt_sb; - zfs_sb_t *zsb = sb->s_fs_info; + zfs_sb_t *zsb = root->d_sb->s_fs_info; + + seq_printf(seq, ",%s", zsb->z_flags & ZSB_XATTR ? "xattr" : "noxattr"); - /* - * The Linux VFS automatically handles the following flags: - * MNT_NOSUID, MNT_NODEV, MNT_NOEXEC, MNT_NOATIME, MNT_READONLY - */ + return (0); +} +#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); } +#endif /* HAVE_SHOW_OPTIONS_WITH_DENTRY */ static int zpl_fill_super(struct super_block *sb, void *data, int silent) |