On Jan 25, 2008, at 6:16 PM, J. Bruce Fields wrote:
Just some minor cleanup.

Also I don't see much point in trying to register further proc entries
if initial entries fail; so just stop trying in that case.

Acked-by: NeilBrown <[EMAIL PROTECTED]>
Signed-off-by: J. Bruce Fields <[EMAIL PROTECTED]>
---
net/sunrpc/cache.c | 99 +++++++++++++++++++++++++++ +-----------------------
 1 files changed, 54 insertions(+), 45 deletions(-)

diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
index d05ea16..504b4e8 100644
--- a/net/sunrpc/cache.c
+++ b/net/sunrpc/cache.c
@@ -290,44 +290,63 @@ static const struct file_operations cache_flush_operations;
 static void do_cache_clean(struct work_struct *work);
 static DECLARE_DELAYED_WORK(cache_cleaner, do_cache_clean);

-void cache_register(struct cache_detail *cd)
+void remove_cache_proc_entries(struct cache_detail *cd)

Since you don't provide an EXPORT_SYMBOL for this new function, perhaps it should be declared static?

 {
-       cd->proc_ent = proc_mkdir(cd->name, proc_net_rpc);
-       if (cd->proc_ent) {
-               struct proc_dir_entry *p;
-               cd->proc_ent->owner = cd->owner;
-               cd->channel_ent = cd->content_ent = NULL;
+       if (cd->proc_ent == NULL)
+               return;
+       if (cd->flush_ent)
+               remove_proc_entry("flush", cd->proc_ent);
+       if (cd->channel_ent)
+               remove_proc_entry("channel", cd->proc_ent);
+       if (cd->content_ent)
+               remove_proc_entry("content", cd->proc_ent);
+       cd->proc_ent = NULL;
+       remove_proc_entry(cd->name, proc_net_rpc);
+}

-               p = create_proc_entry("flush", S_IFREG|S_IRUSR|S_IWUSR,
-                                     cd->proc_ent);
-               cd->flush_ent =  p;
-               if (p) {
-                       p->proc_fops = &cache_flush_operations;
-                       p->owner = cd->owner;
-                       p->data = cd;
-               }
+void create_cache_proc_entries(struct cache_detail *cd)

Likewise.

+{
+       struct proc_dir_entry *p;

-               if (cd->cache_request || cd->cache_parse) {
-                       p = create_proc_entry("channel", 
S_IFREG|S_IRUSR|S_IWUSR,
-                                             cd->proc_ent);
-                       cd->channel_ent = p;
-                       if (p) {
-                               p->proc_fops = &cache_file_operations;
-                               p->owner = cd->owner;
-                               p->data = cd;
-                       }
-               }
-               if (cd->cache_show) {
-                       p = create_proc_entry("content", 
S_IFREG|S_IRUSR|S_IWUSR,
-                                             cd->proc_ent);
-                       cd->content_ent = p;
-                       if (p) {
-                               p->proc_fops = &content_file_operations;
-                               p->owner = cd->owner;
-                               p->data = cd;
-                       }
-               }
+       cd->proc_ent = proc_mkdir(cd->name, proc_net_rpc);
+       if (cd->proc_ent == NULL)
+               return;
+       cd->proc_ent->owner = cd->owner;
+       cd->channel_ent = cd->content_ent = NULL;
+
+ p = create_proc_entry("flush", S_IFREG|S_IRUSR|S_IWUSR, cd- >proc_ent);
+       cd->flush_ent = p;
+       if (p == NULL)
+               return;
+       p->proc_fops = &cache_flush_operations;
+       p->owner = cd->owner;
+       p->data = cd;
+
+       if (cd->cache_request || cd->cache_parse) {
+               p = create_proc_entry("channel", S_IFREG|S_IRUSR|S_IWUSR,
+                                     cd->proc_ent);
+               cd->channel_ent = p;
+               if (p == NULL)
+                       return;
+               p->proc_fops = &cache_file_operations;
+               p->owner = cd->owner;
+               p->data = cd;
+       }
+       if (cd->cache_show) {
+               p = create_proc_entry("content", S_IFREG|S_IRUSR|S_IWUSR,
+                                     cd->proc_ent);
+               cd->content_ent = p;
+               if (p == NULL)
+                       return;
+               p->proc_fops = &content_file_operations;
+               p->owner = cd->owner;
+               p->data = cd;
        }
+}
+
+void cache_register(struct cache_detail *cd)
+{
+       create_cache_proc_entries(cd);
        rwlock_init(&cd->hash_lock);
        INIT_LIST_HEAD(&cd->queue);
        spin_lock(&cache_list_lock);
@@ -358,17 +377,7 @@ void cache_unregister(struct cache_detail *cd)
        list_del_init(&cd->others);
        write_unlock(&cd->hash_lock);
        spin_unlock(&cache_list_lock);
-       if (cd->proc_ent) {
-               if (cd->flush_ent)
-                       remove_proc_entry("flush", cd->proc_ent);
-               if (cd->channel_ent)
-                       remove_proc_entry("channel", cd->proc_ent);
-               if (cd->content_ent)
-                       remove_proc_entry("content", cd->proc_ent);
-
-               cd->proc_ent = NULL;
-               remove_proc_entry(cd->name, proc_net_rpc);
-       }
+       remove_cache_proc_entries(cd);
        if (list_empty(&cache_list)) {
                /* module must be being unloaded so its safe to kill the worker 
*/
                cancel_delayed_work_sync(&cache_cleaner);
--
1.5.4.rc2.60.gb2e62

-
To unsubscribe from this list: send the line "unsubscribe linux- nfs" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



-
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to