Re: diskless enbd-client/enbd on initrd
"Peter T. Breuer" <[email protected]> Mon, 10 Apr 2006 12:54:41 +0200 (MET DST)
| Newsgroups | gmane.linux.enbd.general |
|---|---|
| Message-ID | <[email protected]> |
In summary ... (I believe you were using my unedited binaries, and that sigcheck succeeds in them) > MY_NBD_SET_SIG arg (user 6f6e6578) in user addr bfb1aa1c > enbd-client 593: client (-1) set sig or passed sigchk OK Sigcheck OK. > ENBD #4424[0]: enbd_ioctl unauthorized ioctl 0xc008ab30 > enbd-client 593: #2087 setdevicesize: client (-1) failed to set size > 21474836480 This is because you are not running a 2.4.33 kernel module. I have changed the binary now to fall back to the SET_SECTORS ioctl instead of the SET_SECTORS64 ioctl, when the latter fails. > enbd-client 593: #2498 setkernelnbd: Failed set size 21474836480 on fd > 3: No such file or directory > enbd-client 593: client (-1) sets session slots to 0-1 > enbd-client 593: #3403 introduction: Failed/5: No such file or directory This was the only real clue here and it sent me on a wild goose chase. The error message is not in my list, but I guess it is how EBADF or ENOSYS is rendered on your platform. At any rate, I looked at the code of set_size() (which returns EBADF if there is no device on that inode) to locate the error and should not have, because it never entered set_size(), the ioctl being rejected before it got there. I would have expected to see a more particular kernel message here, but the only one is the "enbd_ioctl unauthorized ioctl" so I guess it never got very far with that ioctl. So - recompile your kernel module. You need 2.4.33 to match the 2.4.33 static binaries you were trying. Alternatively, use the newer static binary I just put up, which falls back to the 32 bit ioctl if the 64 bit ioctl is not available. But the sigcheck is fine. Just retry, with matched module and binaries. Peter