[Drbd-dev] Bug in latest 8.4-git

Igor Novgorodov igor at novg.net
Wed Oct 8 12:31:33 CEST 2014

On 08.10.2014 13:37, Lars Ellenberg wrote:
> On Mon, Oct 06, 2014 at 08:21:15PM +0400, Igor Novgorodov wrote:
>> I didn't found any bugtracker for DRBD project, so i reported the bug here.
> Right thing to do. Thank you.
>> ENOIOCTLCMD is returned in several places in net/socket.c and
>> net/ipv4/tcp.c,
>> it seems to have something to do with 32-bit code emulation on
>> 64-bit kernel:
>> static int inet_compat_ioctl(struct socket *sock, unsigned int cmd,
>> unsigned long arg)
>> {
>>           struct sock *sk = sock->sk;
>>           int err = -ENOIOCTLCMD;
>>           if (sk->sk_prot->compat_ioctl)
>>                   err = sk->sk_prot->compat_ioctl(sk, cmd, arg);
>>           return err;
>> }
>> #endif
>> CONFIG_COMPAT is only defined if 32-bit emulation is enabled in kernel.
>> I've just rebuilt kernel with CONFIG_X86_X32 and drbd-8.4-git
>> started to work fine,
>> so the problem is there, somewhere in 64/32 compatibility layer :)
> Uh?
> That is ... unexpected.
> ->listen() should do any ioctls, though?
> and there is just kernel code talking to kernel code,
> so why would CONFIG_X86_X32 matter at all?
> Can you double check, please:
> Is that reproducible, i.e., if you swich that CONFIG off again,
> the error comes back?
> (does not reproduce here... yet)

You're right, something's odd here.

I've rebuilt the same git version 8.4 
with the very same kernel 3.14.19 with CONFIG_IA32_EMULATION unset, and 
DRBD started
to work without a problem, no listen errors.

I used the same kernel & drbd sources, same config, nothing has changed 
Maybe there was some bug on my build machine...

Thanks anyway, and sorry for disturbing, if anything like that should 
come up again, i'll report.

> 	Lars
> _______________________________________________
> drbd-dev mailing list
> drbd-dev at lists.linbit.com
> http://lists.linbit.com/mailman/listinfo/drbd-dev

More information about the drbd-dev mailing list