static int ufs_test_debugfs_init(void) { struct dentry *utils_root, *tests_root; int ret = 0; utils_root = test_iosched_get_debugfs_utils_root(); tests_root = test_iosched_get_debugfs_tests_root(); utd->test_list = kmalloc(sizeof(struct dentry *) * NUM_TESTS, GFP_KERNEL); if (!utd->test_list) { pr_err("%s: failed to allocate tests dentrys", __func__); return -ENODEV; } if (!utils_root || !tests_root) { pr_err("%s: Failed to create debugfs root.", __func__); ret = -EINVAL; goto exit_err; } utd->random_test_seed_dentry = debugfs_create_u32("random_test_seed", S_IRUGO | S_IWUGO, utils_root, &utd->random_test_seed); if (!utd->random_test_seed_dentry) { pr_err("%s: Could not create debugfs random_test_seed.", __func__); ret = -ENOMEM; goto exit_err; } ret = add_test(utd, write_read_test, WRITE_READ_TEST); if (ret) goto exit_err; ret = add_test(utd, long_sequential_read, LONG_SEQUENTIAL_READ); if (ret) goto exit_err; ret = add_test(utd, long_sequential_write, LONG_SEQUENTIAL_WRITE); if (ret) goto exit_err; ret = add_test(utd, long_sequential_mixed, LONG_SEQUENTIAL_MIXED); if (ret) goto exit_err; add_test(utd, multi_query, MULTI_QUERY); if (ret) goto exit_err; add_test(utd, parallel_read_and_write, PARALLEL_READ_AND_WRITE); if (ret) goto exit_err; add_test(utd, lun_depth, LUN_DEPTH); if (ret) goto exit_err; goto exit; exit_err: ufs_test_debugfs_cleanup(); exit: return ret; }
static void ufs_test_remove(struct test_iosched *test_iosched) { struct ufs_test_data *utd = test_iosched->blk_dev_test_data; ufs_test_debugfs_cleanup(test_iosched); test_iosched->blk_dev_test_data = NULL; kfree(utd); }
static void ufs_test_remove(void) { ufs_test_debugfs_cleanup(); }