Lines Matching refs:bs

95     BlockDriverState *bs;  member
113 static void nbd_clear_bdrvstate(BlockDriverState *bs) in nbd_clear_bdrvstate() argument
115 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_clear_bdrvstate()
120 yank_unregister_instance(BLOCKDEV_YANK_INSTANCE(bs->node_name)); in nbd_clear_bdrvstate()
211 s->reconnect_delay_timer = aio_timer_new(bdrv_get_aio_context(s->bs), in reconnect_delay_timer_init()
218 static void nbd_teardown_connection(BlockDriverState *bs) in nbd_teardown_connection() argument
220 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_teardown_connection()
226 yank_unregister_function(BLOCKDEV_YANK_INSTANCE(s->bs->node_name), in nbd_teardown_connection()
227 nbd_yank, s->bs); in nbd_teardown_connection()
256 s->open_timer = aio_timer_new(bdrv_get_aio_context(s->bs), in open_timer_init()
278 nbd_handle_updated_info(BlockDriverState *bs, Error **errp) in nbd_handle_updated_info() argument
280 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_handle_updated_info()
295 ret = bdrv_apply_auto_read_only(bs, "NBD export is read-only", errp); in nbd_handle_updated_info()
302 bs->supported_write_flags = BDRV_REQ_FUA; in nbd_handle_updated_info()
303 bs->supported_zero_flags |= BDRV_REQ_FUA; in nbd_handle_updated_info()
307 bs->supported_zero_flags |= BDRV_REQ_MAY_UNMAP; in nbd_handle_updated_info()
309 bs->supported_zero_flags |= BDRV_REQ_NO_FALLBACK; in nbd_handle_updated_info()
318 int coroutine_fn nbd_co_do_establish_connection(BlockDriverState *bs, in nbd_co_do_establish_connection() argument
321 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_co_do_establish_connection()
333 yank_register_function(BLOCKDEV_YANK_INSTANCE(s->bs->node_name), nbd_yank, in nbd_co_do_establish_connection()
334 bs); in nbd_co_do_establish_connection()
336 ret = nbd_handle_updated_info(s->bs, NULL); in nbd_co_do_establish_connection()
346 yank_unregister_function(BLOCKDEV_YANK_INSTANCE(s->bs->node_name), in nbd_co_do_establish_connection()
347 nbd_yank, bs); in nbd_co_do_establish_connection()
385 trace_nbd_reconnect_attempt(s->bs->in_flight); in nbd_reconnect_attempt()
400 yank_unregister_function(BLOCKDEV_YANK_INSTANCE(s->bs->node_name), in nbd_reconnect_attempt()
401 nbd_yank, s->bs); in nbd_reconnect_attempt()
407 ret = nbd_co_do_establish_connection(s->bs, blocking, NULL); in nbd_reconnect_attempt()
408 trace_nbd_reconnect_attempt_result(ret, s->bs->in_flight); in nbd_reconnect_attempt()
461 ret = nbd_receive_reply(s->bs, s->ioc, &s->reply, s->info.mode, errp); in nbd_receive_replies()
491 nbd_co_send_request(BlockDriverState *bs, NBDRequest *request, in nbd_co_send_request() argument
494 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_co_send_request()
1206 nbd_co_request(BlockDriverState *bs, NBDRequest *request, in nbd_co_request() argument
1211 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_co_request()
1222 ret = nbd_co_send_request(bs, request, write_qiov); in nbd_co_request()
1244 nbd_client_co_preadv(BlockDriverState *bs, int64_t offset, int64_t bytes, in nbd_client_co_preadv() argument
1249 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_co_preadv()
1281 ret = nbd_co_send_request(bs, &request, NULL); in nbd_client_co_preadv()
1302 nbd_client_co_pwritev(BlockDriverState *bs, int64_t offset, int64_t bytes, in nbd_client_co_pwritev() argument
1305 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_co_pwritev()
1323 return nbd_co_request(bs, &request, qiov); in nbd_client_co_pwritev()
1327 nbd_client_co_pwrite_zeroes(BlockDriverState *bs, int64_t offset, int64_t bytes, in nbd_client_co_pwrite_zeroes() argument
1330 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_co_pwrite_zeroes()
1360 return nbd_co_request(bs, &request, NULL); in nbd_client_co_pwrite_zeroes()
1363 static int coroutine_fn GRAPH_RDLOCK nbd_client_co_flush(BlockDriverState *bs) in nbd_client_co_flush() argument
1365 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_co_flush()
1375 return nbd_co_request(bs, &request, NULL); in nbd_client_co_flush()
1379 nbd_client_co_pdiscard(BlockDriverState *bs, int64_t offset, int64_t bytes) in nbd_client_co_pdiscard() argument
1381 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_co_pdiscard()
1396 return nbd_co_request(bs, &request, NULL); in nbd_client_co_pdiscard()
1400 BlockDriverState *bs, bool want_zero, int64_t offset, int64_t bytes, in nbd_client_co_block_status() argument
1405 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_co_block_status()
1418 *file = bs; in nbd_client_co_block_status()
1422 request.len = MIN(QEMU_ALIGN_DOWN(INT_MAX, bs->bl.request_alignment), in nbd_client_co_block_status()
1444 ret = nbd_co_send_request(bs, &request, NULL); in nbd_client_co_block_status()
1469 *file = bs; in nbd_client_co_block_status()
1478 BDRVNBDState *s = (BDRVNBDState *)state->bs->opaque; in nbd_client_reopen_prepare()
1489 BlockDriverState *bs = opaque; in nbd_yank() local
1490 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_yank()
1497 static void nbd_client_close(BlockDriverState *bs) in nbd_client_close() argument
1499 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_client_close()
1506 nbd_teardown_connection(bs); in nbd_client_close()
1847 static int nbd_process_options(BlockDriverState *bs, QDict *options, in nbd_process_options() argument
1850 BDRVNBDState *s = bs->opaque; in nbd_process_options()
1906 static int nbd_open(BlockDriverState *bs, QDict *options, int flags, in nbd_open() argument
1910 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_open()
1912 s->bs = bs; in nbd_open()
1918 if (!yank_register_instance(BLOCKDEV_YANK_INSTANCE(bs->node_name), errp)) { in nbd_open()
1922 ret = nbd_process_options(bs, options, errp); in nbd_open()
1938 ret = nbd_do_establish_connection(bs, true, errp); in nbd_open()
1956 nbd_clear_bdrvstate(bs); in nbd_open()
1960 static void nbd_refresh_limits(BlockDriverState *bs, Error **errp) in nbd_refresh_limits() argument
1962 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_refresh_limits()
1983 bs->bl.request_alignment = min; in nbd_refresh_limits()
1984 bs->bl.max_pdiscard = QEMU_ALIGN_DOWN(INT_MAX, min); in nbd_refresh_limits()
1985 bs->bl.max_pwrite_zeroes = max; in nbd_refresh_limits()
1986 bs->bl.max_transfer = max; in nbd_refresh_limits()
1993 bs->bl.max_pdiscard = bs->bl.max_pwrite_zeroes = 0; in nbd_refresh_limits()
1997 s->info.opt_block > bs->bl.opt_transfer) { in nbd_refresh_limits()
1998 bs->bl.opt_transfer = s->info.opt_block; in nbd_refresh_limits()
2002 static void nbd_close(BlockDriverState *bs) in nbd_close() argument
2004 nbd_client_close(bs); in nbd_close()
2005 nbd_clear_bdrvstate(bs); in nbd_close()
2016 static int coroutine_fn nbd_co_truncate(BlockDriverState *bs, int64_t offset, in nbd_co_truncate() argument
2020 BDRVNBDState *s = bs->opaque; in nbd_co_truncate()
2035 static int64_t coroutine_fn nbd_co_getlength(BlockDriverState *bs) in nbd_co_getlength() argument
2037 BDRVNBDState *s = bs->opaque; in nbd_co_getlength()
2042 static void nbd_refresh_filename(BlockDriverState *bs) in nbd_refresh_filename() argument
2044 BDRVNBDState *s = bs->opaque; in nbd_refresh_filename()
2059 len = snprintf(bs->exact_filename, sizeof(bs->exact_filename), in nbd_refresh_filename()
2062 len = snprintf(bs->exact_filename, sizeof(bs->exact_filename), in nbd_refresh_filename()
2065 len = snprintf(bs->exact_filename, sizeof(bs->exact_filename), in nbd_refresh_filename()
2068 len = snprintf(bs->exact_filename, sizeof(bs->exact_filename), in nbd_refresh_filename()
2071 if (len >= sizeof(bs->exact_filename)) { in nbd_refresh_filename()
2073 bs->exact_filename[0] = '\0'; in nbd_refresh_filename()
2077 static char *nbd_dirname(BlockDriverState *bs, Error **errp) in nbd_dirname() argument
2099 static void nbd_cancel_in_flight(BlockDriverState *bs) in nbd_cancel_in_flight() argument
2101 BDRVNBDState *s = (BDRVNBDState *)bs->opaque; in nbd_cancel_in_flight()
2114 static void nbd_attach_aio_context(BlockDriverState *bs, in nbd_attach_aio_context() argument
2117 BDRVNBDState *s = bs->opaque; in nbd_attach_aio_context()
2134 static void nbd_detach_aio_context(BlockDriverState *bs) in nbd_detach_aio_context() argument
2136 BDRVNBDState *s = bs->opaque; in nbd_detach_aio_context()