static void aoe_exit(void) { discover_timer(TKILL); aoenet_exit(); unregister_blkdev(AOE_MAJOR, DEVICE_NAME); aoechr_exit(); aoedev_exit(); aoeblk_exit(); /* free cache after de-allocating bufs */ }
static void aoe_exit(void) { discover_timer(TKILL); aoenet_exit(); unregister_blkdev(AOE_MAJOR, DEVICE_NAME); aoechr_exit(); aoedev_exit(); aoeblk_exit(); }
static int __init aoe_init(void) { int ret; ret = aoedev_init(); if (ret) return ret; ret = aoechr_init(); if (ret) goto chr_fail; ret = aoeblk_init(); if (ret) goto blk_fail; ret = aoenet_init(); if (ret) goto net_fail; ret = register_blkdev(AOE_MAJOR, DEVICE_NAME); if (ret < 0) { printk(KERN_ERR "aoe: can't register major\n"); goto blkreg_fail; } #ifdef CONFIG_DEBUG_PRINTK printk(KERN_INFO "aoe: AoE v%s initialised.\n", VERSION); #else ; #endif discover_timer(TINIT); return 0; blkreg_fail: aoenet_exit(); net_fail: aoeblk_exit(); blk_fail: aoechr_exit(); chr_fail: aoedev_exit(); #ifdef CONFIG_DEBUG_PRINTK printk(KERN_INFO "aoe: initialisation failure.\n"); #else ; #endif return ret; }