==[x]== 代表说明符号
==== 代表关系符号
open流程
参见:
tgt bs_rbd.c
static tgtadm_err bs_rbd_init(struct scsi_lu *lu, char *bsopts)
static int bs_rbd_open(struct scsi_lu *lu, char *path, int *fd, uint64_t *size)
rados_create()
|
V
rados_conf_parse_env()
|
V
rados_conf_read_file()
|
V
rados_connect(rbd->cluster)
|
V
rados_ioctx_create()//librados.cc
|
-->librados::RadosClient::create_ioctx()//RadosClient.cc ...
|
V
rbd_open()
读流程(simpleMessenger为例)
参见:
tgt bs_rbd.c
static void bs_rbd_request(struct scsi_cmd *cmd)
“`
rbd_read() //librbd/librbd.cc
|
–>ImageRequestWQ::read() //ImageRequestWQ.cc
|
–>ImageRequestWQ::aio_read()
|
–>queue(new ImageReadRequest<>)
||ImageRequest<>::aio_read()</