FILE
io-submitter.h
File preview with syntax highlighting.
linux-6.19.14/drivers/md/dm-vdo/io-submitter.h
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright 2023 Red Hat 4 */ 5 6#ifndef VDO_IO_SUBMITTER_H 7#define VDO_IO_SUBMITTER_H 8 9#include <linux/bio.h> 10 11#include "constants.h" 12#include "types.h" 13 14struct io_submitter; 15 16int vdo_make_io_submitter(unsigned int thread_count, unsigned int rotation_interval, 17 unsigned int max_requests_active, struct vdo *vdo, 18 struct io_submitter **io_submitter); 19 20void vdo_cleanup_io_submitter(struct io_submitter *io_submitter); 21 22void vdo_free_io_submitter(struct io_submitter *io_submitter); 23 24void vdo_submit_vio(struct vdo_completion *completion); 25 26void vdo_submit_data_vio(struct data_vio *data_vio); 27 28void __submit_metadata_vio(struct vio *vio, physical_block_number_t physical, 29 bio_end_io_t callback, vdo_action_fn error_handler, 30 blk_opf_t operation, char *data, int size); 31 32static inline void vdo_submit_metadata_vio(struct vio *vio, physical_block_number_t physical, 33 bio_end_io_t callback, vdo_action_fn error_handler, 34 blk_opf_t operation) 35{ 36 __submit_metadata_vio(vio, physical, callback, error_handler, 37 operation, vio->data, vio->block_count * VDO_BLOCK_SIZE); 38} 39 40static inline void vdo_submit_metadata_vio_with_size(struct vio *vio, 41 physical_block_number_t physical, 42 bio_end_io_t callback, 43 vdo_action_fn error_handler, 44 blk_opf_t operation, 45 int size) 46{ 47 __submit_metadata_vio(vio, physical, callback, error_handler, 48 operation, vio->data, size); 49} 50 51static inline void vdo_submit_flush_vio(struct vio *vio, bio_end_io_t callback, 52 vdo_action_fn error_handler) 53{ 54 /* FIXME: Can we just use REQ_OP_FLUSH? */ 55 __submit_metadata_vio(vio, 0, callback, error_handler, 56 REQ_OP_WRITE | REQ_PREFLUSH, NULL, 0); 57} 58 59#endif /* VDO_IO_SUBMITTER_H */
~/
Read-only file preview.