]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/afs/main.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[linux-2.6-omap-h63xx.git] / fs / afs / main.c
index 40c2704e7557c4093b07df5130d9dbe851aa38ed..0f60f6b35769acfda6cd49522a770db006a08758 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/moduleparam.h>
 #include <linux/init.h>
 #include <linux/completion.h>
+#include <linux/sched.h>
 #include "internal.h"
 
 MODULE_DESCRIPTION("AFS Client File System");
@@ -54,7 +55,7 @@ static int __init afs_get_client_UUID(void)
 
        /* read the MAC address of one of the external interfaces and construct
         * a UUID from it */
-       ret = afs_get_MAC_address(afs_uuid.node);
+       ret = afs_get_MAC_address(afs_uuid.node, sizeof(afs_uuid.node));
        if (ret < 0)
                return ret;
 
@@ -149,6 +150,7 @@ error_cache:
        afs_vlocation_purge();
        afs_cell_purge();
        afs_proc_cleanup();
+       rcu_barrier();
        printk(KERN_ERR "kAFS: failed to register: %d\n", ret);
        return ret;
 }
@@ -166,6 +168,7 @@ static void __exit afs_exit(void)
        printk(KERN_INFO "kAFS: Red Hat AFS client v0.1 unregistering.\n");
 
        afs_fs_exit();
+       afs_kill_lock_manager();
        afs_close_socket();
        afs_purge_servers();
        afs_callback_update_kill();
@@ -176,6 +179,7 @@ static void __exit afs_exit(void)
        cachefs_unregister_netfs(&afs_cache_netfs);
 #endif
        afs_proc_cleanup();
+       rcu_barrier();
 }
 
 module_exit(afs_exit);