btrfs: add helper for string match ignoring leading/trailing whitespace
authorAnand Jain <anand.jain@oracle.com>
Wed, 28 Oct 2020 13:14:45 +0000 (21:14 +0800)
committerDavid Sterba <dsterba@suse.com>
Tue, 8 Dec 2020 14:53:44 +0000 (15:53 +0100)
Add a generic helper to match the string in a given buffer, and ignore
the leading and trailing whitespace.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ rename variables, add comments ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/sysfs.c

index fcd6c7a..b2f653e 100644 (file)
@@ -888,6 +888,25 @@ 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 struct attribute *btrfs_attrs[] = {
        BTRFS_ATTR_PTR(, label),
        BTRFS_ATTR_PTR(, nodesize),