From: "majianpeng" <majianpeng@gmail.com>
To: Neil Brown <neilb@suse.de>
Cc: linux-raid <linux-raid@vger.kernel.org>
Subject: [PATCH] md:Fix checkpatch issues.
Date: Wed, 30 May 2012 16:54:02 +0800 [thread overview]
Message-ID: <201205301653568902535@gmail.com> (raw)
WARNING: simple_strtoul is obsolete, use kstrtoul instead.
WARNING: simple_strtoull is obsolete, use kstrtoull instead.
Signed-off-by: majianpeng <majianpeng@gmail.com>
---
drivers/md/md.c | 177 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 105 insertions(+), 72 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 1c2f904..142b028 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2809,13 +2809,11 @@ errors_show(struct md_rdev *rdev, char *page)
static ssize_t
errors_store(struct md_rdev *rdev, const char *buf, size_t len)
{
- char *e;
- unsigned long n = simple_strtoul(buf, &e, 10);
- if (*buf && (*e == 0 || *e == '\n')) {
- atomic_set(&rdev->corrected_errors, n);
- return len;
- }
- return -EINVAL;
+ unsigned long n;
+ if (kstrtoul(buf, 10, &n))
+ return -EINVAL;
+ atomic_set(&rdev->corrected_errors, n);
+ return len;
}
static struct rdev_sysfs_entry rdev_errors =
__ATTR(errors, S_IRUGO|S_IWUSR, errors_show, errors_store);
@@ -2832,12 +2830,12 @@ slot_show(struct md_rdev *rdev, char *page)
static ssize_t
slot_store(struct md_rdev *rdev, const char *buf, size_t len)
{
- char *e;
int err;
- int slot = simple_strtoul(buf, &e, 10);
+ unsigned long slot;
+
if (strncmp(buf, "none", 4)==0)
slot = -1;
- else if (e==buf || (*e && *e!= '\n'))
+ else if (kstrtoul(buf, 10, &slot))
return -EINVAL;
if (rdev->mddev->pers && slot == -1) {
/* Setting 'slot' on an active array requires also
@@ -3699,10 +3697,9 @@ layout_show(struct mddev *mddev, char *page)
static ssize_t
layout_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
- unsigned long n = simple_strtoul(buf, &e, 10);
+ unsigned long n;
- if (!*buf || (*e && *e != '\n'))
+ if (kstrtoul(buf, 10, &n))
return -EINVAL;
if (mddev->pers) {
@@ -3743,11 +3740,10 @@ static int update_raid_disks(struct mddev *mddev, int raid_disks);
static ssize_t
raid_disks_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
int rv = 0;
- unsigned long n = simple_strtoul(buf, &e, 10);
+ unsigned long n;
- if (!*buf || (*e && *e != '\n'))
+ if (kstrtoul(buf, 10, &n))
return -EINVAL;
if (mddev->pers)
@@ -3788,10 +3784,9 @@ chunk_size_show(struct mddev *mddev, char *page)
static ssize_t
chunk_size_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
- unsigned long n = simple_strtoul(buf, &e, 10);
+ unsigned long n;
- if (!*buf || (*e && *e != '\n'))
+ if (kstrtoul(buf, 10, &n))
return -EINVAL;
if (mddev->pers) {
@@ -3825,14 +3820,13 @@ resync_start_show(struct mddev *mddev, char *page)
static ssize_t
resync_start_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
- unsigned long long n = simple_strtoull(buf, &e, 10);
+ unsigned long long n;
if (mddev->pers && !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery))
return -EBUSY;
if (cmd_match(buf, "none"))
n = MaxSector;
- else if (!*buf || (*e && *e != '\n'))
+ else if (kstrtoull(buf, 10, &n))
return -EINVAL;
mddev->recovery_cp = n;
@@ -4036,14 +4030,12 @@ max_corrected_read_errors_show(struct mddev *mddev, char *page) {
static ssize_t
max_corrected_read_errors_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
- unsigned long n = simple_strtoul(buf, &e, 10);
+ unsigned long n;
+ if (kstrtoul(buf, 10, &n))
+ return -EINVAL;
- if (*buf && (*e == 0 || *e == '\n')) {
- atomic_set(&mddev->max_corr_read_errors, n);
- return len;
- }
- return -EINVAL;
+ atomic_set(&mddev->max_corr_read_errors, n);
+ return len;
}
static struct md_sysfs_entry max_corr_read_errors =
@@ -4066,18 +4058,29 @@ new_dev_store(struct mddev *mddev, const char *buf, size_t len)
* Otherwise, only checking done is that in bind_rdev_to_array,
* which mainly checks size.
*/
- char *e;
- int major = simple_strtoul(buf, &e, 10);
+ char *e, *p;
+ int major;
int minor;
dev_t dev;
struct md_rdev *rdev;
int err;
- if (!*buf || *e != ':' || !e[1] || e[1] == '\n')
+ e = kstrdup(buf, GFP_KERNEL);
+ if (e == NULL)
+ return -ENOMEM;
+
+ p = strstr(e, ":");
+ if (p == NULL) {
+ kfree(e);
return -EINVAL;
- minor = simple_strtoul(e+1, &e, 10);
- if (*e && *e != '\n')
+ }
+ *p = '\0';
+ if (kstrtoint(e, 10, &major) || kstrtoint(p + 1, 10, &minor)) {
+ kfree(e);
return -EINVAL;
+ }
+ kfree(e);
+
dev = MKDEV(major, minor);
if (major != MAJOR(dev) ||
minor != MINOR(dev))
@@ -4116,26 +4119,54 @@ __ATTR(new_dev, S_IWUSR, null_show, new_dev_store);
static ssize_t
bitmap_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *end;
+ char *end, *tmp = NULL;
unsigned long chunk, end_chunk;
if (!mddev->bitmap)
goto out;
+ tmp = kstrdup(buf, GFP_KERNEL);
+ if (tmp == NULL)
+ goto out;
+ end = tmp;
+
/* buf should be <chunk> <chunk> ... or <chunk>-<chunk> ... (range) */
- while (*buf) {
- chunk = end_chunk = simple_strtoul(buf, &end, 0);
- if (buf == end) break;
- if (*end == '-') { /* range */
- buf = end + 1;
- end_chunk = simple_strtoul(buf, &end, 0);
- if (buf == end) break;
+ while (*end) {
+ char *p = strstr(end, "-");
+ char *p1 = strstr(end, " ");
+ if (p == NULL && p1 == NULL) {
+ if (kstrtoul(end, 0, &chunk))
+ break;
+ end_chunk = chunk;
+ *end = '\0';
+ } else if (p != NULL && (p1 == NULL || p < p1)) { /*range */
+ *p = '\0';
+ if (kstrtoul(end, 0, &chunk))
+ break;
+
+ end = p + 1;
+ p = strstr(end, " ");
+ if (p != NULL)
+ *p = '\0';
+
+ if (kstrtoul(end, 0, &end_chunk))
+ break;
+ if (p)
+ end = p + 1;
+ else
+ *end = '\0';
+ } else if (p1 != NULL) {
+ *p1 = '\0';
+ if (kstrtoul(end, 0, &chunk))
+ break;
+ end_chunk = chunk;
+ end = p1 + 1;
}
- if (*end && !isspace(*end)) break;
bitmap_dirty_bits(mddev->bitmap, chunk, end_chunk);
- buf = skip_spaces(end);
+ end = skip_spaces(end);
}
bitmap_unplug(mddev->bitmap); /* flush the bits to disk */
out:
+ kfree(tmp);
return len;
}
@@ -4202,7 +4233,7 @@ static ssize_t
metadata_store(struct mddev *mddev, const char *buf, size_t len)
{
int major, minor;
- char *e;
+ char *e, *tmp;
/* Changing the details of 'external' metadata is
* always permitted. Otherwise there must be
* no devices attached to the array.
@@ -4233,13 +4264,22 @@ metadata_store(struct mddev *mddev, const char *buf, size_t len)
mddev->minor_version = 90;
return len;
}
- major = simple_strtoul(buf, &e, 10);
- if (e==buf || *e != '.')
+
+ tmp = kstrdup(buf, GFP_KERNEL);
+ if (tmp == NULL)
+ return -ENOMEM;
+ e = strstr(tmp, ".");
+ if (e == NULL) {
+ kfree(tmp);
return -EINVAL;
- buf = e+1;
- minor = simple_strtoul(buf, &e, 10);
- if (e==buf || (*e && *e != '\n') )
+ }
+ *e = '\0';
+ if (kstrtoint(buf, 10, &major) || kstrtoint(e + 1, 10, &minor)) {
+ kfree(tmp);
return -EINVAL;
+ }
+ kfree(tmp);
+
if (major >= ARRAY_SIZE(super_types) || super_types[major].name == NULL)
return -ENOENT;
mddev->major_version = major;
@@ -4347,13 +4387,12 @@ static ssize_t
sync_min_store(struct mddev *mddev, const char *buf, size_t len)
{
int min;
- char *e;
if (strncmp(buf, "system", 6)==0) {
mddev->sync_speed_min = 0;
return len;
}
- min = simple_strtoul(buf, &e, 10);
- if (buf == e || (*e && *e != '\n') || min <= 0)
+
+ if (kstrtoint(buf, 10, &min) || min <= 0)
return -EINVAL;
mddev->sync_speed_min = min;
return len;
@@ -4373,13 +4412,11 @@ static ssize_t
sync_max_store(struct mddev *mddev, const char *buf, size_t len)
{
int max;
- char *e;
if (strncmp(buf, "system", 6)==0) {
mddev->sync_speed_max = 0;
return len;
}
- max = simple_strtoul(buf, &e, 10);
- if (buf == e || (*e && *e != '\n') || max <= 0)
+ if (kstrtoint(buf, 10, &max) || max <= 0)
return -EINVAL;
mddev->sync_speed_max = max;
return len;
@@ -4540,14 +4577,14 @@ suspend_lo_show(struct mddev *mddev, char *page)
static ssize_t
suspend_lo_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
- unsigned long long new = simple_strtoull(buf, &e, 10);
+ unsigned long long new;
unsigned long long old = mddev->suspend_lo;
if (mddev->pers == NULL ||
mddev->pers->quiesce == NULL)
return -EINVAL;
- if (buf == e || (*e && *e != '\n'))
+
+ if (kstrtoull(buf, 10, &new))
return -EINVAL;
mddev->suspend_lo = new;
@@ -4574,14 +4611,13 @@ suspend_hi_show(struct mddev *mddev, char *page)
static ssize_t
suspend_hi_store(struct mddev *mddev, const char *buf, size_t len)
{
- char *e;
- unsigned long long new = simple_strtoull(buf, &e, 10);
+ unsigned long long new;
unsigned long long old = mddev->suspend_hi;
if (mddev->pers == NULL ||
mddev->pers->quiesce == NULL)
return -EINVAL;
- if (buf == e || (*e && *e != '\n'))
+ if (kstrtoull(buf, 10, &new))
return -EINVAL;
mddev->suspend_hi = new;
@@ -4612,11 +4648,10 @@ static ssize_t
reshape_position_store(struct mddev *mddev, const char *buf, size_t len)
{
struct md_rdev *rdev;
- char *e;
- unsigned long long new = simple_strtoull(buf, &e, 10);
+ unsigned long long new;
if (mddev->pers)
return -EBUSY;
- if (buf == e || (*e && *e != '\n'))
+ if (kstrtoull(buf, 10, &new))
return -EINVAL;
mddev->reshape_position = new;
mddev->delta_disks = 0;
@@ -8584,13 +8619,11 @@ static int get_ro(char *buffer, struct kernel_param *kp)
}
static int set_ro(const char *val, struct kernel_param *kp)
{
- char *e;
- int num = simple_strtoul(val, &e, 10);
- if (*val && (*e == '\0' || *e == '\n')) {
- start_readonly = num;
- return 0;
- }
- return -EINVAL;
+ int num;
+ if (kstrtoint(val, 10, &num))
+ return -EINVAL;
+ start_readonly = num;
+ return 0;
}
module_param_call(start_ro, set_ro, get_ro, NULL, S_IRUSR|S_IWUSR);
--
1.7.5.4
--------------
majianpeng
2012-05-30
reply other threads:[~2012-05-30 8:54 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201205301653568902535@gmail.com \
--to=majianpeng@gmail.com \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).