This reverts commit c814153c83a892dfd42026eaa661ae2c1f298792. The commit c814153c83a8 "nvme-fc: fold t fc_update_appid into fc_appid_store" changed the userspace interface, because the code that decrements "count" to remove a trailing '\n' in the parsing results in the decremented value being incorrectly be returned from the sysfs write. Fix this by revering the commit. Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Ewan D. Milne <emilne@xxxxxxxxxx> --- drivers/nvme/host/fc.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c index 9987797620b6..27f6dfad5d3b 100644 --- a/drivers/nvme/host/fc.c +++ b/drivers/nvme/host/fc.c @@ -3873,10 +3873,12 @@ static int fc_parse_cgrpid(const char *buf, u64 *id) } /* - * Parse and update the appid in the blkcg associated with the cgroupid. + * fc_update_appid: Parse and update the appid in the blkcg associated with + * cgroupid. + * @buf: buf contains both cgrpid and appid info + * @count: size of the buffer */ -static ssize_t fc_appid_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) +static int fc_update_appid(const char *buf, size_t count) { u64 cgrp_id; int appid_len = 0; @@ -3904,6 +3906,17 @@ static ssize_t fc_appid_store(struct device *dev, return ret; return count; } + +static ssize_t fc_appid_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int ret = 0; + + ret = fc_update_appid(buf, count); + if (ret < 0) + return -EINVAL; + return count; +} static DEVICE_ATTR(appid_store, 0200, NULL, fc_appid_store); #endif /* CONFIG_BLK_CGROUP_FC_APPID */ -- 2.20.1