X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fobd_sysfs.c;h=5d9430a0930e9a0c4a4193a4636a1dca7b5680d0;hb=d775f9ae37975c853984b67f6d1a21e6ec8a8c3d;hp=d79bb63cd8dbca2bc1f0bd71b8abd39a15c25904;hpb=6706bfa81998c999012909e4cfcd1d3dbc347075;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/obd_sysfs.c b/lustre/obdclass/obd_sysfs.c index d79bb63..5d9430a 100644 --- a/lustre/obdclass/obd_sysfs.c +++ b/lustre/obdclass/obd_sysfs.c @@ -27,7 +27,6 @@ */ /* * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. * * lustre/obdclass/obd_sysfs.c * @@ -63,6 +62,7 @@ #include #include +#include #include #include #include @@ -214,7 +214,7 @@ static ssize_t version_show(struct kobject *kobj, struct attribute *attr, static ssize_t pinger_show(struct kobject *kobj, struct attribute *attr, char *buf) { -#ifdef ENABLE_PINGER +#ifdef CONFIG_LUSTRE_FS_PINGER const char *state = "on"; #else const char *state = "off"; @@ -280,7 +280,7 @@ static ssize_t jobid_var_show(struct kobject *kobj, struct attribute *attr, int rc = 0; if (strlen(obd_jobid_var)) - rc = snprintf(buf, PAGE_SIZE, "%s\n", obd_jobid_var); + rc = scnprintf(buf, PAGE_SIZE, "%s\n", obd_jobid_var); return rc; } @@ -307,7 +307,7 @@ static ssize_t jobid_name_show(struct kobject *kobj, struct attribute *attr, int rc = 0; if (strlen(obd_jobid_name)) - rc = snprintf(buf, PAGE_SIZE, "%s\n", obd_jobid_name); + rc = scnprintf(buf, PAGE_SIZE, "%s\n", obd_jobid_name); return rc; } @@ -349,7 +349,7 @@ static ssize_t jobid_this_session_show(struct kobject *kobj, rcu_read_lock(); jid = jobid_current(); if (jid) - ret = snprintf(buf, PAGE_SIZE, "%s\n", jid); + ret = scnprintf(buf, PAGE_SIZE, "%s\n", jid); rcu_read_unlock(); return ret; } @@ -501,6 +501,63 @@ static const struct file_operations obd_device_list_fops = { .release = seq_release, }; +/* checksum_speed */ +static void *checksum_speed_start(struct seq_file *p, loff_t *pos) +{ + return pos; +} + +static void checksum_speed_stop(struct seq_file *p, void *v) +{ +} + +static void *checksum_speed_next(struct seq_file *p, void *v, loff_t *pos) +{ + ++(*pos); + if (*pos >= CFS_HASH_ALG_SPEED_MAX - 1) + return NULL; + + return pos; +} + +static int checksum_speed_show(struct seq_file *p, void *v) +{ + loff_t index = *(loff_t *)v; + + if (!index || index > CFS_HASH_ALG_SPEED_MAX - 1) + return 0; + + seq_printf(p, "%s: %d\n", cfs_crypto_hash_name(index), + cfs_crypto_hash_speeds[index]); + + return 0; +} + +static const struct seq_operations checksum_speed_sops = { + .start = checksum_speed_start, + .stop = checksum_speed_stop, + .next = checksum_speed_next, + .show = checksum_speed_show, +}; + +static int checksum_speed_open(struct inode *inode, struct file *file) +{ + int rc = seq_open(file, &checksum_speed_sops); + + if (rc) + return rc; + + return 0; +} + +static const struct file_operations checksum_speed_fops = { + .owner = THIS_MODULE, + .open = checksum_speed_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + static int health_check_seq_show(struct seq_file *m, void *unused) { @@ -586,31 +643,15 @@ int class_procfs_init(void) } debugfs_lustre_root = debugfs_create_dir("lustre", NULL); - if (IS_ERR_OR_NULL(debugfs_lustre_root)) { - rc = debugfs_lustre_root ? PTR_ERR(debugfs_lustre_root) - : -ENOMEM; - debugfs_lustre_root = NULL; - kset_unregister(lustre_kset); - goto out; - } file = debugfs_create_file("devices", 0444, debugfs_lustre_root, NULL, &obd_device_list_fops); - if (IS_ERR_OR_NULL(file)) { - rc = file ? PTR_ERR(file) : -ENOMEM; - debugfs_remove(debugfs_lustre_root); - kset_unregister(lustre_kset); - goto out; - } file = debugfs_create_file("health_check", 0444, debugfs_lustre_root, NULL, &health_check_fops); - if (IS_ERR_OR_NULL(file)) { - rc = file ? PTR_ERR(file) : -ENOMEM; - debugfs_remove_recursive(debugfs_lustre_root); - kset_unregister(lustre_kset); - goto out; - } + + file = debugfs_create_file("checksum_speed", 0444, debugfs_lustre_root, + NULL, &checksum_speed_fops); entry = lprocfs_register("fs/lustre", NULL, NULL, NULL); if (IS_ERR(entry)) {