diff mbox series

btrfs: sysfs: accept size suffixes for read policy values

Message ID 8f77c6490a181cb0bb16c6b11131723e46c41108.1737566842.git.anand.jain@oracle.com (mailing list archive)
State New
Headers show
Series btrfs: sysfs: accept size suffixes for read policy values | expand

Commit Message

Anand Jain Jan. 22, 2025, 5:30 p.m. UTC
We now parse human-friendly size values (e.g. '1G', '2M') when setting
read policies.

Suggested-by: David Sterba <dsterba@suse.com>
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
Note that only read_policy accepts these suffixed values - show() displays
values without suffixes, consistent with other sysfs knobs like chunk_size.

 fs/btrfs/sysfs.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index 53b846d99ece..66aac3aae2e9 100644
--- a/fs/btrfs/sysfs.c
+++ b/fs/btrfs/sysfs.c
@@ -1342,17 +1342,17 @@  int btrfs_read_policy_to_enum(const char *str, s64 *value_ret)
 	/* Separate value from input in policy:value format. */
 	value_str = strchr(param, ':');
 	if (value_str) {
-		int ret;
+		char *retptr;
 
 		*value_str = 0;
 		value_str++;
 		if (!value_ret)
 			return -EINVAL;
-		ret = kstrtos64(value_str, 10, value_ret);
-		if (ret)
+
+		*value_ret = memparse(value_str, &retptr);
+		retptr = skip_spaces(retptr);
+		if (*retptr != 0 || *value_ret <= 0)
 			return -EINVAL;
-		if (*value_ret < 0)
-			return -ERANGE;
 	}
 #endif