btrfs: sysfs: use sysfs_streq for string matching
authorDavid Sterba <dsterba@suse.com>
Tue, 2 Aug 2022 13:46:28 +0000 (15:46 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 26 Sep 2022 10:27:53 +0000 (12:27 +0200)
We have own string matching helper that duplicates what sysfs_streq
does, with a slight difference that it skips initial whitespace. So far
this is used for the drive allocation policy. The initial whitespace
of written sysfs values should be rather discouraged and we should use a
standard helper.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/sysfs.c

index d5d0717..43d45a0 100644 (file)
@@ -1150,25 +1150,6 @@ static ssize_t btrfs_generation_show(struct kobject *kobj,
 }
 BTRFS_ATTR(, generation, btrfs_generation_show);
 
-/*
- * Look for an exact string @string in @buffer with possible leading or
- * trailing whitespace
- */
-static bool strmatch(const char *buffer, const char *string)
-{
-       const size_t len = strlen(string);
-
-       /* Skip leading whitespace */
-       buffer = skip_spaces(buffer);
-
-       /* Match entire string, check if the rest is whitespace or empty */
-       if (strncmp(string, buffer, len) == 0 &&
-           strlen(skip_spaces(buffer + len)) == 0)
-               return true;
-
-       return false;
-}
-
 static const char * const btrfs_read_policy_name[] = { "pid" };
 
 static ssize_t btrfs_read_policy_show(struct kobject *kobj,
@@ -1202,7 +1183,7 @@ static ssize_t btrfs_read_policy_store(struct kobject *kobj,
        int i;
 
        for (i = 0; i < BTRFS_NR_READ_POLICY; i++) {
-               if (strmatch(buf, btrfs_read_policy_name[i])) {
+               if (sysfs_streq(buf, btrfs_read_policy_name[i])) {
                        if (i != fs_devices->read_policy) {
                                fs_devices->read_policy = i;
                                btrfs_info(fs_devices->fs_info,