Hi, I have recently upgraded my development cluster from 3.6.x to 3.7.1 kernel and clvmd stopped working (all locking operation result in 'Invalid argument'). I have traced the problem to this call:
write(8, "\6\0\0\0\0\0\0\0\1\0\0\0\1\1\0\0\5@\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320\307\351\326\277\177\0\0\20\17\36\331\277\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\313\351\326\277\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Hlk5NeaVF0qhDF20RBq61EZaIj5yyUJgWxxs4ntZedP34Rj3E2wadZfVwtOcvpKb", 184) = -1 EINVAL (Invalid argument) Kernel sources show only a few conditions which can result in the EINVAL error and the one introduced by the 'dlm: check the maximum size of a request from user' patch seemed suspicious to me. The commit: http://git.kernel.org/?p=linux/kernel/git/teigland/linux-dlm.git;a=commitdiff;h=2b75bc9121e54e22537207b47b71373bcb0be41c Should a 64-bit kernel really refuse requests using the 64-bit dlm_write_request struct when compiled with CONFIG_COMPAT on? To verify my suspicions I have compiled the 3.7.9 with a little patch dropping the '(count > sizeof(struct dlm_write_request32) + DLM_RESNAME_MAXLEN)' check, which solved the problem for me. The patch will follow, though I am still not sure this is the solution. Greets, Jacek