static int lprocfs_wr_lfsck_speed_limit(struct file *file, const char *buffer, unsigned long count, void *data) { struct mdd_device *mdd = data; __u32 val; int rc; LASSERT(mdd != NULL); rc = lprocfs_write_helper(buffer, count, &val); if (rc != 0) return rc; rc = lfsck_set_speed(mdd->mdd_bottom, val); return rc != 0 ? rc : count; }
static ssize_t mdd_lfsck_speed_limit_seq_write(struct file *file, const char *buffer, size_t count, loff_t *off) { struct seq_file *m = file->private_data; struct mdd_device *mdd = m->private; __u32 val; int rc; LASSERT(mdd != NULL); rc = lprocfs_write_helper(buffer, count, &val); if (rc != 0) return rc; rc = lfsck_set_speed(mdd->mdd_bottom, val); return rc != 0 ? rc : count; }
static ssize_t mdd_lfsck_speed_limit_seq_write(struct file *file, const char __user *buffer, size_t count, loff_t *off) { struct seq_file *m = file->private_data; struct mdd_device *mdd = m->private; __s64 val; int rc; LASSERT(mdd != NULL); rc = lprocfs_str_to_s64(buffer, count, &val); if (rc != 0) return rc; if (val < 0 || val > INT_MAX) return -ERANGE; rc = lfsck_set_speed(mdd->mdd_bottom, val); return rc != 0 ? rc : count; }