On 13.08.20 18:29, Kevin Wolf wrote: > Instead of implementing qemu-nbd --offset in the NBD code, just put a > raw block node with the requested offset on top of the user image and > rely on that doing the job. > > This does not only simplify the nbd_export_new() interface and bring it > closer to the set of options that the nbd-server-add QMP command offers, > but in fact it also eliminates a potential source for bugs in the NBD > code which previously had to add the offset manually in all relevant > places. > > Signed-off-by: Kevin Wolf > --- > include/block/nbd.h | 4 ++-- > blockdev-nbd.c | 9 +-------- > nbd/server.c | 34 +++++++++++++++++----------------- > qemu-nbd.c | 27 ++++++++++++--------------- > 4 files changed, 32 insertions(+), 42 deletions(-) [...] > diff --git a/nbd/server.c b/nbd/server.c > index 774325dbe5..92360d1f08 100644 > --- a/nbd/server.c > +++ b/nbd/server.c [...] > @@ -1569,7 +1574,7 @@ NBDExport *nbd_export_new(BlockDriverState *bs, uint64_t dev_offset, > exp->nbdflags |= (NBD_FLAG_SEND_TRIM | NBD_FLAG_SEND_WRITE_ZEROES | > NBD_FLAG_SEND_FAST_ZERO); > } > - assert(size <= INT64_MAX - dev_offset); > + assert(size <= INT64_MAX); Forgot to note: I think we can drop this assertion altogether now. Max