summaryrefslogtreecommitdiff
path: root/drivers/md/bcache/io.h
blob: 08bfbd521e96b1bbfa6ade54fdd056cc879bcfe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHE_IO_H_
#define _BCACHE_IO_H_

struct cached_dev;
struct cache;
struct cache_set;

unsigned int bch_get_congested(const struct cache_set *c);
bool bch_check_should_bypass(struct cached_dev *dc, struct bio *bio,
			     unsigned int block_size,
			     unsigned int dirty_percentage);

void bch_count_backing_io_errors(struct cached_dev *dc, struct bio *bio);
void bch_count_io_errors(struct cache *ca, blk_status_t error,
			 int is_read, const char *m);
void bch_bbio_count_io_errors(struct cache_set *c, struct bio *bio,
			      blk_status_t error, const char *m);
void bch_bbio_endio(struct cache_set *c, struct bio *bio,
		    blk_status_t error, const char *m);
void bch_bbio_free(struct bio *bio, struct cache_set *c);
struct bio *bch_bbio_alloc(struct cache_set *c);

void __bch_submit_bbio(struct bio *bio, struct cache_set *c);
void bch_submit_bbio(struct bio *bio, struct cache_set *c,
		     struct bkey *k, unsigned int ptr);

#endif /* _BCACHE_IO_H_ */