mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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:
@@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user