X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fzpl_super.c;h=650e9c0d3791639851c5a29e47f87af43f226227;hb=2cf7f52bc42f215d4ef27d0fd75fc1b1417cb841;hp=493783213787c738cd830330fbeb47c014839004;hpb=055656d4f4dfc1a85646a2c0cc10b9dce86da72b;p=zfs.git diff --git a/module/zfs/zpl_super.c b/module/zfs/zpl_super.c index 4937832..650e9c0 100644 --- a/module/zfs/zpl_super.c +++ b/module/zfs/zpl_super.c @@ -73,7 +73,7 @@ zpl_inode_destroy(struct inode *ip) static void zpl_evict_inode(struct inode *ip) { - truncate_inode_pages(&ip->i_data, 0); + truncate_setsize(ip, 0); end_writeback(ip); zfs_inactive(ip); } @@ -89,7 +89,7 @@ zpl_clear_inode(struct inode *ip) static void zpl_inode_delete(struct inode *ip) { - truncate_inode_pages(&ip->i_data, 0); + truncate_setsize(ip, 0); clear_inode(ip); } @@ -150,8 +150,7 @@ zpl_show_options(struct seq_file *seq, struct vfsmount *vfsp) * MNT_NOSUID, MNT_NODEV, MNT_NOEXEC, MNT_NOATIME, MNT_READONLY */ - if (zsb->z_flags & ZSB_XATTR_USER) - seq_printf(seq, ",%s", "xattr"); + seq_printf(seq, ",%s", zsb->z_flags & ZSB_XATTR ? "xattr" : "noxattr"); return (0); } @@ -167,14 +166,25 @@ zpl_fill_super(struct super_block *sb, void *data, int silent) return (error); } +#ifdef HAVE_MOUNT_NODEV +static struct dentry * +zpl_mount(struct file_system_type *fs_type, int flags, + const char *osname, void *data) +{ + zpl_mount_data_t zmd = { osname, data }; + + return mount_nodev(fs_type, flags, &zmd, zpl_fill_super); +} +#else static int zpl_get_sb(struct file_system_type *fs_type, int flags, const char *osname, void *data, struct vfsmount *mnt) { - zpl_mount_data_t zmd = { osname, data, mnt }; + zpl_mount_data_t zmd = { osname, data }; return get_sb_nodev(fs_type, flags, &zmd, zpl_fill_super, mnt); } +#endif /* HAVE_MOUNT_NODEV */ static void zpl_kill_sb(struct super_block *sb) @@ -213,6 +223,10 @@ const struct super_operations zpl_super_operations = { struct file_system_type zpl_fs_type = { .owner = THIS_MODULE, .name = ZFS_DRIVER, +#ifdef HAVE_MOUNT_NODEV + .mount = zpl_mount, +#else .get_sb = zpl_get_sb, +#endif /* HAVE_MOUNT_NODEV */ .kill_sb = zpl_kill_sb, };