convert hugetlbfs

Very much ramfs-like; dget()+d_instantiate() -> d_make_persistent()
(in two places) is all it takes.

NB: might make sense to turn its ->put_super() into ->kill_sb().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro
2024-02-26 01:40:22 -05:00
parent bdd80b5c1b
commit 50889f533f

View File

@@ -975,8 +975,7 @@ static int hugetlbfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
if (!inode) if (!inode)
return -ENOSPC; return -ENOSPC;
inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
d_instantiate(dentry, inode); d_make_persistent(dentry, inode);
dget(dentry);/* Extra count - pin the dentry in core */
return 0; return 0;
} }
@@ -1023,10 +1022,9 @@ static int hugetlbfs_symlink(struct mnt_idmap *idmap,
if (inode) { if (inode) {
int l = strlen(symname)+1; int l = strlen(symname)+1;
error = page_symlink(inode, symname, l); error = page_symlink(inode, symname, l);
if (!error) { if (!error)
d_instantiate(dentry, inode); d_make_persistent(dentry, inode);
dget(dentry); else
} else
iput(inode); iput(inode);
} }
inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
@@ -1483,7 +1481,7 @@ static struct file_system_type hugetlbfs_fs_type = {
.name = "hugetlbfs", .name = "hugetlbfs",
.init_fs_context = hugetlbfs_init_fs_context, .init_fs_context = hugetlbfs_init_fs_context,
.parameters = hugetlb_fs_parameters, .parameters = hugetlb_fs_parameters,
.kill_sb = kill_litter_super, .kill_sb = kill_anon_super,
.fs_flags = FS_ALLOW_IDMAP, .fs_flags = FS_ALLOW_IDMAP,
}; };