Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Hi,
As mentioned in my previous mail, all seems to be work fine. I have run
the tests you asked, and it seems everything is not quite perfect, but
perhaps good enough for me at the moment. I would be happy to test any
further fixes, however.
nasty:~# drbdsetup /dev/drbd0 show
disk {
size 0s _is_default; # bytes
on-io-error pass_on _is_default;
fencing dont-care _is_default;
}
_this_host {
device minor 0;
disk "/dev/sda7";
meta-disk internal;
}
# (5376) unknown tag = (integer) 8402432 [len: 384]
# Found unknown tags, you should update your
# userland tools
This looks like an alignment error
The output of the 'events' call looks fine.
Nick
Philipp Reisner wrote:
> On Thursday 11 June 2009 12:02:41 Nick wrote:
>
> [...]
>
>> -- drbdsetup.c.orig 2009-06-11 10:51:08.000000000 +0100
>> +++ drbdsetup.c 2009-06-11 10:53:43.000000000 +0100
>> @@ -549,8 +549,8 @@
>> fprintf(stderr, "Tag list size exceeded!\n");
>> exit(20);
>> }
>> - *tl->tag_list_cpos++ = tag;
>> - *tl->tag_list_cpos++ = data_len;
>> + memcpy(tl->tag_list_cpos++, (short*)&tag, sizeof(tl->tag_list_cpos));
>> + memcpy(tl->tag_list_cpos++, (short*)&data_len,
>> sizeof(tl->tag_list_cpos));
>> memcpy(tl->tag_list_cpos,data,data_len);
>> tl->tag_list_cpos = (unsigned short*)((char*)tl->tag_list_cpos +
>> data_len);
>> }
>>
>>
>
> Hi Nick,
>
> I do not understand why that patch to the userland fixes the issue.
> There are similar same unaligned accesses in the kernel part.
>
> I have a patch attached, that should fix the complete issue, although
> I can not test it...
>
> When you test it, please also test the netlink packets from kernel
> to userspace as well. I.e. drbdsetup /dev/drbd0 events,
> drbdsetup /dev/drbd0 show, etc...
>
> -phil
>