[OpenWrt-Devel] [PATCH fstools] blockd: don't reparse blob msg in the vlist callbacks
John Crispin
john at phrozen.org
Fri Dec 7 13:35:34 EST 2018
On 07/12/2018 14:13, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal at milecki.pl>
>
> ubus message is parsed in the block_hotplug() which fills all the struct
> device fields. Once that is done there is no need to parse original
> message again - it's enough to get required data from the struct.
>
> This also fixes handling messages with "autofs" set to 0. They were
> incorrectly interpreted due to the missing blobmsg_get_u32().
>
> Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
nice catch !
Acked-by: John Crispin <john at phrozen.org>
> ---
> blockd.c | 16 +++-------------
> 1 file changed, 3 insertions(+), 13 deletions(-)
>
> diff --git a/blockd.c b/blockd.c
> index 1379635..29d16f2 100644
> --- a/blockd.c
> +++ b/blockd.c
> @@ -111,29 +111,19 @@ block(char *cmd, char *action, char *device)
> static void
> device_free(struct device *device)
> {
> - struct blob_attr *data[__MOUNT_MAX];
> -
> - blobmsg_parse(mount_policy, __MOUNT_MAX, data,
> - blob_data(device->msg), blob_len(device->msg));
> -
> - if (data[MOUNT_AUTOFS] && device->target)
> + if (device->autofs && device->target)
> unlink(device->target);
> }
>
> static void
> device_add(struct device *device)
> {
> - struct blob_attr *data[__MOUNT_MAX];
> char path[64];
>
> - blobmsg_parse(mount_policy, __MOUNT_MAX, data,
> - blob_data(device->msg), blob_len(device->msg));
> -
> - if (!data[MOUNT_AUTOFS])
> + if (!device->autofs)
> return;
>
> - snprintf(path, sizeof(path), "/tmp/run/blockd/%s",
> - blobmsg_get_string(data[MOUNT_DEVICE]));
> + snprintf(path, sizeof(path), "/tmp/run/blockd/%s", device->name);
> if (symlink(path, device->target))
> ULOG_ERR("failed to symlink %s->%s\n", device->target, path);
> }
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list