We don't need to explicitly count references as:
- refcounting already happens for opens of /dev/md?
- when an array is active, a daughter module is loaded which
locks "md" in.
We just need to make sure we clean up properly on unload. (export_array)
Also, xor needs a null module_exit so that it can be unloaded.
mddev_map[mdidx(mddev)] = NULL;
blk_put_queue(mddev->queue);
kfree(mddev);
- MOD_DEC_USE_COUNT;
}
spin_unlock(&all_mddevs_lock);
}
mddev_map[unit] = new;
list_add(&new->all_mddevs, &all_mddevs);
spin_unlock(&all_mddevs_lock);
- MOD_INC_USE_COUNT;
return new;
}
spin_unlock(&all_mddevs_lock);
if (!disks[i])
continue;
mddev = disk->private_data;
+ export_array(mddev);
del_gendisk(disk);
put_disk(disk);
mddev_put(mddev);
return 0;
}
+static __exit void xor_exit(void) { }
+
EXPORT_SYMBOL(xor_block);
MODULE_LICENSE("GPL");
module_init(calibrate_xor_block);
+module_exit(xor_exit);