nvme-fc: fix the fc_appid_store return value
commit 9317d0014499182c77a03cd095e83bcfb0f53750 upstream. "nvme-fc: fold t fc_update_appid into fc_appid_store" accidentally changed the userspace interface for the appid attribute, 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 keeping an orig_count variable for the full length of the write. Fixes: c814153c83a8 ("nvme-fc: fold t fc_update_appid into fc_appid_store") Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Ewan D. Milne <emilne@redhat.com> Reviewed-by: James Smart <jsmart2021@gmail.com> Tested-by: Muneendra Kumar M <muneendra.kumar@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
14e3795597
commit
ec82f4a9bd
@ -3880,6 +3880,7 @@ static int fc_parse_cgrpid(const char *buf, u64 *id)
|
||||
static ssize_t fc_appid_store(struct device *dev,
|
||||
struct device_attribute *attr, const char *buf, size_t count)
|
||||
{
|
||||
size_t orig_count = count;
|
||||
u64 cgrp_id;
|
||||
int appid_len = 0;
|
||||
int cgrpid_len = 0;
|
||||
@ -3904,7 +3905,7 @@ static ssize_t fc_appid_store(struct device *dev,
|
||||
ret = blkcg_set_fc_appid(app_id, cgrp_id, sizeof(app_id));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
return count;
|
||||
return orig_count;
|
||||
}
|
||||
static DEVICE_ATTR(appid_store, 0200, NULL, fc_appid_store);
|
||||
#endif /* CONFIG_BLK_CGROUP_FC_APPID */
|
||||
|
Loading…
x
Reference in New Issue
Block a user