Lines Matching refs:peer_device
84 struct drbd_peer_device *peer_device = peer_req->peer_device; in drbd_endio_read_sec_final() local
85 struct drbd_device *device = peer_device->device; in drbd_endio_read_sec_final()
96 drbd_queue_work(&peer_device->connection->sender_work, &peer_req->w); in drbd_endio_read_sec_final()
105 struct drbd_peer_device *peer_device = peer_req->peer_device; in drbd_endio_write_sec_final() local
106 struct drbd_device *device = peer_device->device; in drbd_endio_write_sec_final()
107 struct drbd_connection *connection = peer_device->connection; in drbd_endio_write_sec_final()
127 drbd_set_out_of_sync(peer_device, peer_req->i.sector, peer_req->i.size); in drbd_endio_write_sec_final()
151 if (!queue_work(connection->ack_sender, &peer_device->send_acks_work)) in drbd_endio_write_sec_final()
174 struct drbd_device *device = peer_req->peer_device->device; in drbd_peer_request_endio()
341 struct drbd_peer_device *peer_device = peer_req->peer_device; in w_e_send_csum() local
342 struct drbd_device *device = peer_device->device; in w_e_send_csum()
353 digest_size = crypto_shash_digestsize(peer_device->connection->csums_tfm); in w_e_send_csum()
358 drbd_csum_ee(peer_device->connection->csums_tfm, peer_req, digest); in w_e_send_csum()
366 inc_rs_pending(peer_device); in w_e_send_csum()
367 err = drbd_send_drequest_csum(peer_device, sector, size, in w_e_send_csum()
387 static int read_for_csum(struct drbd_peer_device *peer_device, sector_t sector, int size) in read_for_csum() argument
389 struct drbd_device *device = peer_device->device; in read_for_csum()
397 peer_req = drbd_alloc_peer_req(peer_device, ID_SYNCER /* unused */, sector, in read_for_csum()
496 static int drbd_rs_controller(struct drbd_peer_device *peer_device, unsigned int sect_in) in drbd_rs_controller() argument
498 struct drbd_device *device = peer_device->device; in drbd_rs_controller()
549 static int drbd_rs_number_requests(struct drbd_peer_device *peer_device) in drbd_rs_number_requests() argument
551 struct drbd_device *device = peer_device->device; in drbd_rs_number_requests()
561 number = drbd_rs_controller(peer_device, sect_in) >> (BM_BLOCK_SHIFT - 9); in drbd_rs_number_requests()
585 static int make_resync_request(struct drbd_peer_device *const peer_device, int cancel) in make_resync_request() argument
587 struct drbd_device *const device = peer_device->device; in make_resync_request()
588 struct drbd_connection *const connection = peer_device ? peer_device->connection : NULL; in make_resync_request()
603 drbd_resync_finished(peer_device); in make_resync_request()
623 number = drbd_rs_number_requests(peer_device); in make_resync_request()
658 if (drbd_try_rs_begin_io(peer_device, sector)) { in make_resync_request()
716 switch (read_for_csum(peer_device, sector, size)) { in make_resync_request()
734 inc_rs_pending(peer_device); in make_resync_request()
735 err = drbd_send_drequest(peer_device, in make_resync_request()
740 dec_rs_pending(peer_device); in make_resync_request()
765 static int make_ov_request(struct drbd_peer_device *peer_device, int cancel) in make_ov_request() argument
767 struct drbd_device *device = peer_device->device; in make_ov_request()
776 number = drbd_rs_number_requests(peer_device); in make_ov_request()
794 if (drbd_try_rs_begin_io(peer_device, sector)) { in make_ov_request()
802 inc_rs_pending(peer_device); in make_ov_request()
804 dec_rs_pending(peer_device); in make_ov_request()
852 int drbd_resync_finished(struct drbd_peer_device *peer_device) in drbd_resync_finished() argument
854 struct drbd_device *device = peer_device->device; in drbd_resync_finished()
855 struct drbd_connection *connection = peer_device->connection; in drbd_resync_finished()
1001 struct drbd_peer_device *peer_device; in drbd_resync_finished() local
1003 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) { in drbd_resync_finished()
1004 struct drbd_device *device = peer_device->device; in drbd_resync_finished()
1056 struct drbd_peer_device *peer_device = peer_req->peer_device; in w_e_end_data_req() local
1057 struct drbd_device *device = peer_device->device; in w_e_end_data_req()
1067 err = drbd_send_block(peer_device, P_DATA_REPLY, peer_req); in w_e_end_data_req()
1073 err = drbd_send_ack(peer_device, P_NEG_DREPLY, peer_req); in w_e_end_data_req()
1117 struct drbd_peer_device *peer_device = peer_req->peer_device; in w_e_end_rsdata_req() local
1118 struct drbd_device *device = peer_device->device; in w_e_end_rsdata_req()
1133 err = drbd_send_ack(peer_device, P_RS_CANCEL, peer_req); in w_e_end_rsdata_req()
1136 inc_rs_pending(peer_device); in w_e_end_rsdata_req()
1138 err = drbd_send_rs_deallocated(peer_device, peer_req); in w_e_end_rsdata_req()
1140 err = drbd_send_block(peer_device, P_RS_DATA_REPLY, peer_req); in w_e_end_rsdata_req()
1152 err = drbd_send_ack(peer_device, P_NEG_RS_DREPLY, peer_req); in w_e_end_rsdata_req()
1155 drbd_rs_failed_io(peer_device, peer_req->i.sector, peer_req->i.size); in w_e_end_rsdata_req()
1170 struct drbd_peer_device *peer_device = peer_req->peer_device; in w_e_end_csum_rs_req() local
1171 struct drbd_device *device = peer_device->device; in w_e_end_csum_rs_req()
1194 if (peer_device->connection->csums_tfm) { in w_e_end_csum_rs_req()
1195 digest_size = crypto_shash_digestsize(peer_device->connection->csums_tfm); in w_e_end_csum_rs_req()
1200 drbd_csum_ee(peer_device->connection->csums_tfm, peer_req, digest); in w_e_end_csum_rs_req()
1206 drbd_set_in_sync(peer_device, peer_req->i.sector, peer_req->i.size); in w_e_end_csum_rs_req()
1209 err = drbd_send_ack(peer_device, P_RS_IS_IN_SYNC, peer_req); in w_e_end_csum_rs_req()
1211 inc_rs_pending(peer_device); in w_e_end_csum_rs_req()
1215 err = drbd_send_block(peer_device, P_RS_DATA_REPLY, peer_req); in w_e_end_csum_rs_req()
1218 err = drbd_send_ack(peer_device, P_NEG_RS_DREPLY, peer_req); in w_e_end_csum_rs_req()
1234 struct drbd_peer_device *peer_device = peer_req->peer_device; in w_e_end_ov_req() local
1235 struct drbd_device *device = peer_device->device; in w_e_end_ov_req()
1245 digest_size = crypto_shash_digestsize(peer_device->connection->verify_tfm); in w_e_end_ov_req()
1253 drbd_csum_ee(peer_device->connection->verify_tfm, peer_req, digest); in w_e_end_ov_req()
1264 inc_rs_pending(peer_device); in w_e_end_ov_req()
1265 err = drbd_send_drequest_csum(peer_device, sector, size, digest, digest_size, P_OV_REPLY); in w_e_end_ov_req()
1267 dec_rs_pending(peer_device); in w_e_end_ov_req()
1277 void drbd_ov_out_of_sync_found(struct drbd_peer_device *peer_device, sector_t sector, int size) in drbd_ov_out_of_sync_found() argument
1279 struct drbd_device *device = peer_device->device; in drbd_ov_out_of_sync_found()
1286 drbd_set_out_of_sync(peer_device, sector, size); in drbd_ov_out_of_sync_found()
1292 struct drbd_peer_device *peer_device = peer_req->peer_device; in w_e_end_ov_reply() local
1293 struct drbd_device *device = peer_device->device; in w_e_end_ov_reply()
1318 digest_size = crypto_shash_digestsize(peer_device->connection->verify_tfm); in w_e_end_ov_reply()
1321 drbd_csum_ee(peer_device->connection->verify_tfm, peer_req, digest); in w_e_end_ov_reply()
1336 drbd_ov_out_of_sync_found(peer_device, sector, size); in w_e_end_ov_reply()
1338 ov_out_of_sync_print(peer_device); in w_e_end_ov_reply()
1340 err = drbd_send_ack_ex(peer_device, P_OV_RESULT, sector, size, in w_e_end_ov_reply()
1349 drbd_advance_rs_marks(peer_device, device->ov_left); in w_e_end_ov_reply()
1355 ov_out_of_sync_print(peer_device); in w_e_end_ov_reply()
1356 drbd_resync_finished(peer_device); in w_e_end_ov_reply()
1428 struct drbd_peer_device *const peer_device = first_peer_device(device); in w_send_out_of_sync() local
1429 struct drbd_connection *const connection = peer_device->connection; in w_send_out_of_sync()
1433 req_mod(req, SEND_CANCELED, peer_device); in w_send_out_of_sync()
1444 err = drbd_send_out_of_sync(peer_device, req); in w_send_out_of_sync()
1445 req_mod(req, OOS_HANDED_TO_NETWORK, peer_device); in w_send_out_of_sync()
1459 struct drbd_peer_device *const peer_device = first_peer_device(device); in w_send_dblock() local
1460 struct drbd_connection *connection = peer_device->connection; in w_send_dblock()
1465 req_mod(req, SEND_CANCELED, peer_device); in w_send_dblock()
1474 err = drbd_send_dblock(peer_device, req); in w_send_dblock()
1475 req_mod(req, err ? SEND_FAILED : HANDED_OVER_TO_NETWORK, peer_device); in w_send_dblock()
1478 pd_send_unplug_remote(peer_device); in w_send_dblock()
1492 struct drbd_peer_device *const peer_device = first_peer_device(device); in w_send_read_req() local
1493 struct drbd_connection *connection = peer_device->connection; in w_send_read_req()
1498 req_mod(req, SEND_CANCELED, peer_device); in w_send_read_req()
1507 err = drbd_send_drequest(peer_device, P_DATA_REQUEST, req->i.sector, req->i.size, in w_send_read_req()
1510 req_mod(req, err ? SEND_FAILED : HANDED_OVER_TO_NETWORK, peer_device); in w_send_read_req()
1513 pd_send_unplug_remote(peer_device); in w_send_read_req()
1676 void drbd_rs_controller_reset(struct drbd_peer_device *peer_device) in drbd_rs_controller_reset() argument
1678 struct drbd_device *device = peer_device->device; in drbd_rs_controller_reset()
1740 struct drbd_peer_device *peer_device = first_peer_device(device); in drbd_start_resync() local
1741 struct drbd_connection *connection = peer_device ? peer_device->connection : NULL; in drbd_start_resync()
1877 drbd_gen_and_send_sync_uuid(peer_device); in drbd_start_resync()
1900 drbd_resync_finished(peer_device); in drbd_start_resync()
1903 drbd_rs_controller_reset(peer_device); in drbd_start_resync()
1918 static void update_on_disk_bitmap(struct drbd_peer_device *peer_device, bool resync_done) in update_on_disk_bitmap() argument
1920 struct drbd_device *device = peer_device->device; in update_on_disk_bitmap()
1929 drbd_resync_finished(peer_device); in update_on_disk_bitmap()
1955 struct drbd_peer_device *peer_device = first_peer_device(device); in go_diskless() local
1981 "detach", BM_LOCKED_TEST_ALLOWED, peer_device)) { in go_diskless()
2058 struct drbd_peer_device *peer_device; in do_unqueued_work() local
2062 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) { in do_unqueued_work()
2063 struct drbd_device *device = peer_device->device; in do_unqueued_work()
2174 struct drbd_peer_device *peer_device; in drbd_worker() local
2229 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) { in drbd_worker()
2230 struct drbd_device *device = peer_device->device; in drbd_worker()