]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fs/ntfs3: Factor out ntfs_{create/remove}_procdir()
authorYe Bin <yebin10@huawei.com>
Fri, 11 Oct 2024 07:40:23 +0000 (15:40 +0800)
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Wed, 5 Feb 2025 14:48:39 +0000 (17:48 +0300)
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>
fs/ntfs3/super.c

index 6a0f6b0a3ab2a529d6f37a7e6ddf0b12b27d117f..415492fc655acc15c6a38332450866fb2e3d4ac4 100644 (file)
@@ -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 @@ load_root:
                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;