diff -r 41911d90022d nbd.c --- a/nbd.c Fri Dec 14 12:39:25 2007 -0600 +++ b/nbd.c Fri Mar 14 09:01:46 2008 -0500 @@ -327,7 +327,7 @@ int nbd_trip(BlockDriverState *bs, int c } else { TRACE("Writing to device"); - if (bdrv_write(bs, from / 512, data, len / 512) == -1) { + if (bdrv_write(bs, (from + dev_offset) / 512, data, len / 512) == -1) { LOG("writing to file failed"); errno = EINVAL; return -1;