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 >