Re: NBD client/server broken?

Anton Altaparmakov (
Sun, 24 Mar 2002 18:46:11 +0000

Just to keep interested parties informed:

Thanks to Steven Whitehouse I found out that the latest nbd client/server
user space programs are in CVS on Sourceforge (the kernel nbd documentation
needs updating to point to

And I have just submitted a patch to Steven to make the nbd-server 64-bit
clean on 32-bit machines and to allow proper auto detection of device size.
Hopefully we will see it entering the CVS soon. Otherwise patch is
available on request from me. (-:

Mounting a NTFS 15GiB partition over nbd (using ntfs tng driver) gave me a
data throughput of 7-10MiB/sec over 100MBit ethernet (going via switch and
a hub) which is quite impressive. (-:

Best regards,


At 13:10 24/03/02, Anton Altaparmakov wrote:
>I have been trying to get nbd to work, the server is 2.4.18-pre7-ac2 and
>the client is 2.5.7, and the exported device is /dev/hda1 a 15GiB partition.
>I found and downloaded nbd.14.tar.gz. Is this the latest and greatest?
>Compiling the package gives several warnings and indeed the nbd-server
>doesn't work. The size auto detection code is completely bogus because it
>submits 64 bit variables via their address to system calls which only take
>32 bit variables so you see silly things like
>es = (u64)-1
>turning into
>es = 0xffffffff01d4b139
>instead of
>es = 0x000000000whatever
>You either need to use 64 bit variants of the calls or you need to submit
>a 32bit variable to the call, e.g. es32, and then expand it via es = (u64)es32.
>So I got past this and fixed size detection for myself.
>Now I get it to serve the first request but then it dies.
>On the server I see:
>[aia21@storm:~/nbd]$ ./nbd-server 5555 /dev/hda1 -r
>Entering request loop!
>1: *READ from 0 (0) len 4096, exp->buf, buf->net, +OK!
>2: *[aia21@storm:~/nbd]$
>And on the client I see:
>[aia21@drop nbd]$ dd if=/dev/nd1 of=ffff bs=1024 count=8
>NBD: receive - sock=-301251788 at buf=-65871580, size=16 returned 0.
>NBD: Recv control failed.(result 0)
>req should never be null
>Kernel call returned.Closing: que, sock, done
>NBD, minor 0: Request when not-ready.
>dd: reading `/dev/nd0': Input/output error
>4+0 records in
>4+0 records out
>[aia21@drop nbd]$
>The contents of the 4kiB of data transmitted are correct so we are
>definitely on the right track but something seems to be aborting the
>request loop in the server program.
>I will be looking into this as I _need_ this functionality very urgently
>but I thought I would ask in case I have an out of data package of the nbd
>utilities or someone has already fixed this and would like to share their
>code with me...
>Best regards,
> "I've not lost my mind. It's backed up on tape somewhere." - Unknown
>Anton Altaparmakov <aia21 at> (replace at with @)
>Linux NTFS Maintainer / WWW:
>ICQ: 8561279 / WWW:
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to
>More majordomo info at
>Please read the FAQ at

   "I've not lost my mind. It's backed up on tape somewhere." - Unknown
Anton Altaparmakov <aia21 at> (replace at with @)
Linux NTFS Maintainer / WWW:
ICQ: 8561279 / WWW:

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at