xfs
[Top] [All Lists]

[PATCH] xfs: simplify /proc teardown & error handling

To: xfs-oss <xfs@xxxxxxxxxxx>
Subject: [PATCH] xfs: simplify /proc teardown & error handling
From: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Tue, 8 Sep 2015 14:49:02 -0500
Delivered-to: xfs@xxxxxxxxxxx
remove_proc_subtree() was added in 3.9, and can be
used to simplify our procfile creation error handling
and cleanup, removing the nested gotos.  It simply
removes fs/xfs and everything created under it.

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---

This goes after Bill's patches, I just noticed it
while reviewing them.

diff --git a/fs/xfs/xfs_stats.c b/fs/xfs/xfs_stats.c
index 05d5227..009a860 100644
--- a/fs/xfs/xfs_stats.c
+++ b/fs/xfs/xfs_stats.c
@@ -168,41 +168,29 @@ int
 xfs_init_procfs(void)
 {
        if (!proc_mkdir("fs/xfs", NULL))
-               goto out;
+               return -ENOMEM;
 
        if (!proc_symlink("fs/xfs/stat", NULL,
                          "/sys/fs/xfs/stats/stats"))
-               goto out_remove_xfs_dir;
+               goto out;
 
 #ifdef CONFIG_XFS_QUOTA
        if (!proc_create("fs/xfs/xqmstat", 0, NULL,
                         &xqmstat_proc_fops))
-               goto out_remove_stat_file;
+               goto out;
        if (!proc_create("fs/xfs/xqm", 0, NULL,
                         &xqm_proc_fops))
-               goto out_remove_xqmstat_file;
+               goto out;
 #endif
        return 0;
 
-#ifdef CONFIG_XFS_QUOTA
- out_remove_xqmstat_file:
-       remove_proc_entry("fs/xfs/xqmstat", NULL);
- out_remove_stat_file:
-       remove_proc_entry("fs/xfs/stat", NULL);
-#endif
- out_remove_xfs_dir:
-       remove_proc_entry("fs/xfs", NULL);
- out:
+out:
+       remove_proc_subtree("fs/xfs", NULL);
        return -ENOMEM;
 }
 
 void
 xfs_cleanup_procfs(void)
 {
-#ifdef CONFIG_XFS_QUOTA
-       remove_proc_entry("fs/xfs/xqm", NULL);
-       remove_proc_entry("fs/xfs/xqmstat", NULL);
-#endif
-       remove_proc_entry("fs/xfs/stat", NULL);
-       remove_proc_entry("fs/xfs", NULL);
+       remove_proc_subtree("fs/xfs", NULL);
 }

<Prev in Thread] Current Thread [Next in Thread>