Whamcloud - gitweb
LU-3319 procfs: move llite proc handling over to seq_file
[fs/lustre-release.git] / lustre / llite / super25.c
index 6567d07..b373ad2 100644 (file)
@@ -61,11 +61,25 @@ static struct inode *ll_alloc_inode(struct super_block *sb)
        return &lli->lli_vfs_inode;
 }
 
+#ifdef HAVE_INODE_I_RCU
+static void ll_inode_destroy_callback(struct rcu_head *head)
+{
+       struct inode *inode = container_of(head, struct inode, i_rcu);
+       struct ll_inode_info *ptr = ll_i2info(inode);
+       OBD_SLAB_FREE_PTR(ptr, ll_inode_cachep);
+}
+
 static void ll_destroy_inode(struct inode *inode)
 {
-        struct ll_inode_info *ptr = ll_i2info(inode);
-        OBD_SLAB_FREE_PTR(ptr, ll_inode_cachep);
+       call_rcu(&inode->i_rcu, ll_inode_destroy_callback);
 }
+#else
+static void ll_destroy_inode(struct inode *inode)
+{
+       struct ll_inode_info *ptr = ll_i2info(inode);
+       OBD_SLAB_FREE_PTR(ptr, ll_inode_cachep);
+}
+#endif
 
 int ll_init_inodecache(void)
 {
@@ -155,7 +169,8 @@ static int __init init_lustre_lite(void)
        }
 
         proc_lustre_fs_root = proc_lustre_root ?
-                              lprocfs_register("llite", proc_lustre_root, NULL, NULL) : NULL;
+                             lprocfs_seq_register("llite", proc_lustre_root,
+                                                  NULL, NULL) : NULL;
 
         lustre_register_client_fill_super(ll_fill_super);
         lustre_register_kill_super_cb(ll_kill_super);
@@ -175,8 +190,8 @@ static int __init init_lustre_lite(void)
                 }
         }
 
-        cfs_gettimeofday(&tv);
-        cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]);
+       do_gettimeofday(&tv);
+       cfs_srand(tv.tv_sec ^ seed[0], tv.tv_usec ^ seed[1]);
 
         init_timer(&ll_capa_timer);
         ll_capa_timer.function = ll_capa_timer_callback;
@@ -187,11 +202,15 @@ static int __init init_lustre_lite(void)
         if (rc == 0)
                 rc = vvp_global_init();
 
+       if (rc == 0)
+               rc = ll_xattr_init();
+
         return rc;
 }
 
 static void __exit exit_lustre_lite(void)
 {
+       ll_xattr_fini();
         vvp_global_fini();
         del_timer(&ll_capa_timer);
         ll_capa_thread_stop();