Revision 94607e7a
b/nbd.c | ||
---|---|---|
583 | 583 |
return 0; |
584 | 584 |
} |
585 | 585 |
|
586 |
int nbd_trip(BlockDriverState *bs, int csock, off_t size, uint64_t dev_offset, |
|
587 |
off_t *offset, uint32_t nbdflags, uint8_t *data, int data_size) |
|
586 |
int nbd_trip(BlockDriverState *bs, int csock, off_t size, |
|
587 |
uint64_t dev_offset, uint32_t nbdflags, |
|
588 |
uint8_t *data, int data_size) |
|
588 | 589 |
{ |
589 | 590 |
struct nbd_request request; |
590 | 591 |
struct nbd_reply reply; |
... | ... | |
635 | 636 |
reply.error = -ret; |
636 | 637 |
request.len = 0; |
637 | 638 |
} |
638 |
*offset += request.len; |
|
639 | 639 |
|
640 | 640 |
TRACE("Read %u byte(s)", request.len); |
641 | 641 |
|
... | ... | |
684 | 684 |
request.len = 0; |
685 | 685 |
} |
686 | 686 |
|
687 |
*offset += request.len; |
|
688 |
|
|
689 | 687 |
if (request.type & NBD_CMD_FLAG_FUA) { |
690 | 688 |
ret = bdrv_flush(bs); |
691 | 689 |
if (ret < 0) { |
b/nbd.h | ||
---|---|---|
72 | 72 |
int nbd_send_request(int csock, struct nbd_request *request); |
73 | 73 |
int nbd_receive_reply(int csock, struct nbd_reply *reply); |
74 | 74 |
int nbd_trip(BlockDriverState *bs, int csock, off_t size, uint64_t dev_offset, |
75 |
off_t *offset, uint32_t nbdflags, uint8_t *data, int data_size);
|
|
75 |
uint32_t nbdflags, uint8_t *data, int data_size); |
|
76 | 76 |
int nbd_client(int fd); |
77 | 77 |
int nbd_disconnect(int fd); |
78 | 78 |
|
b/qemu-nbd.c | ||
---|---|---|
248 | 248 |
{ |
249 | 249 |
BlockDriverState *bs; |
250 | 250 |
off_t dev_offset = 0; |
251 |
off_t offset = 0; |
|
252 | 251 |
uint32_t nbdflags = 0; |
253 | 252 |
bool disconnect = false; |
254 | 253 |
const char *bindto = "0.0.0.0"; |
... | ... | |
542 | 541 |
for (i = 1; i < nb_fds && ret; i++) { |
543 | 542 |
if (FD_ISSET(sharing_fds[i], &fds)) { |
544 | 543 |
if (nbd_trip(bs, sharing_fds[i], fd_size, dev_offset, |
545 |
&offset, nbdflags, data, NBD_BUFFER_SIZE) != 0) {
|
|
544 |
nbdflags, data, NBD_BUFFER_SIZE) != 0) { |
|
546 | 545 |
close(sharing_fds[i]); |
547 | 546 |
nb_fds--; |
548 | 547 |
sharing_fds[i] = sharing_fds[nb_fds]; |
Also available in: Unified diff