Quoting Sergey Senozhatsky (2019-08-02 14:35:03) > On (08/02/19 22:15), Sergey Senozhatsky wrote: > [..] > > > > Looking around, it looks like we always need to drop type after > > > > mounting. Should the > > > > put_filesystem(type); > > > > be here instead? > > > > > > > > Anyway, nice catch. > > > > > > Sigh. put_filesystem() is part of fs internals. I'd be tempted to add > > > > Good catch! > > > > So we can switch to vfs_kern_mount(), I guess, but pass different options, > > depending on has_transparent_hugepage(). > > Hmm. This doesn't look exactly right. It appears that vfs_kern_mount() > has a slightly different purpose. It's for drivers which register their > own fstype and fs_context/sb callbacks. A typical usage would be > > static struct file_system_type nfsd_fs_type = { > .owner→ → = THIS_MODULE, > .name→ → = "nfsd", > .init_fs_context = nfsd_init_fs_context, > .kill_sb→ = nfsd_umount, > }; > MODULE_ALIAS_FS("nfsd"); > > vfs_kern_mount(&nfsd_fs_type, SB_KERNMOUNT, "nfsd", NULL); > > i915 is a different beast, it just wants to mount fs and reconfigure > it, it doesn't want to be an fs. So it seems that current kern_mount() > is actually right. struct vfsmount *kern_mount(struct file_system_type *type) { struct vfsmount *mnt; mnt = vfs_kern_mount(type, SB_KERNMOUNT, type->name, NULL); if (!IS_ERR(mnt)) { /* * it is a longterm mount, don't release mnt until * we unmount before file sys is unregistered */ real_mount(mnt)->mnt_ns = MNT_NS_INTERNAL; } return mnt; } With the exception of fiddling with MNT_NS_INTERNAL, it seems amenable for our needs. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx