mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
fs/ntfs3: Factor out ntfs_{create/remove}_procdir()
Introduce ntfs_create_procdir() and ntfs_remove_procdir() to create/remove "/proc/fs/ntfs3/.." Signed-off-by: Ye Bin <yebin10@huawei.com> Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
285cec318b
commit
e2d74c47a3
|
|
@ -555,6 +555,40 @@ static const struct proc_ops ntfs3_label_fops = {
|
|||
.proc_write = ntfs3_label_write,
|
||||
};
|
||||
|
||||
static void ntfs_create_procdir(struct super_block *sb)
|
||||
{
|
||||
struct proc_dir_entry *e;
|
||||
|
||||
if (!proc_info_root)
|
||||
return;
|
||||
|
||||
e = proc_mkdir(sb->s_id, proc_info_root);
|
||||
if (e) {
|
||||
struct ntfs_sb_info *sbi = sb->s_fs_info;
|
||||
|
||||
proc_create_data("volinfo", 0444, e,
|
||||
&ntfs3_volinfo_fops, sb);
|
||||
proc_create_data("label", 0644, e,
|
||||
&ntfs3_label_fops, sb);
|
||||
sbi->procdir = e;
|
||||
}
|
||||
}
|
||||
|
||||
static void ntfs_remove_procdir(struct super_block *sb)
|
||||
{
|
||||
struct ntfs_sb_info *sbi = sb->s_fs_info;
|
||||
|
||||
if (!sbi->procdir)
|
||||
return;
|
||||
|
||||
remove_proc_entry("label", sbi->procdir);
|
||||
remove_proc_entry("volinfo", sbi->procdir);
|
||||
remove_proc_entry(sb->s_id, proc_info_root);
|
||||
sbi->procdir = NULL;
|
||||
}
|
||||
#else
|
||||
static void ntfs_create_procdir(struct super_block *sb) {}
|
||||
static void ntfs_remove_procdir(struct super_block *sb) {}
|
||||
#endif
|
||||
|
||||
static struct kmem_cache *ntfs_inode_cachep;
|
||||
|
|
@ -644,15 +678,7 @@ static void ntfs_put_super(struct super_block *sb)
|
|||
{
|
||||
struct ntfs_sb_info *sbi = sb->s_fs_info;
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
// Remove /proc/fs/ntfs3/..
|
||||
if (sbi->procdir) {
|
||||
remove_proc_entry("label", sbi->procdir);
|
||||
remove_proc_entry("volinfo", sbi->procdir);
|
||||
remove_proc_entry(sb->s_id, proc_info_root);
|
||||
sbi->procdir = NULL;
|
||||
}
|
||||
#endif
|
||||
ntfs_remove_procdir(sb);
|
||||
|
||||
/* Mark rw ntfs as clear, if possible. */
|
||||
ntfs_set_state(sbi, NTFS_DIRTY_CLEAR);
|
||||
|
|
@ -1590,20 +1616,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
|
|||
kfree(boot2);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
/* Create /proc/fs/ntfs3/.. */
|
||||
if (proc_info_root) {
|
||||
struct proc_dir_entry *e = proc_mkdir(sb->s_id, proc_info_root);
|
||||
static_assert((S_IRUGO | S_IWUSR) == 0644);
|
||||
if (e) {
|
||||
proc_create_data("volinfo", S_IRUGO, e,
|
||||
&ntfs3_volinfo_fops, sb);
|
||||
proc_create_data("label", S_IRUGO | S_IWUSR, e,
|
||||
&ntfs3_label_fops, sb);
|
||||
sbi->procdir = e;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
ntfs_create_procdir(sb);
|
||||
|
||||
if (is_legacy_ntfs(sb))
|
||||
sb->s_flags |= SB_RDONLY;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user