nvme-fc: fix the fc_appid_store return value
"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: c814153c83
("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>
This commit is contained in:
Родитель
6fb271f1bc
Коммит
9317d00144
|
@ -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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче