summaryrefslogtreecommitdiff
path: root/libbcache/io_types.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-03-19 15:56:34 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2017-03-19 17:31:47 -0800
commit5ec39af8eaba49aee7bafa44c661da39e2f40dc3 (patch)
tree1fb1a981602cbf22c7d2b2dba1168c715d7cecb5 /libbcache/io_types.h
parentbb1941de5378a7b8122d3575dcbc7d0aeb6326f0 (diff)
Rename from bcache-tools to bcachefs-tools
Diffstat (limited to 'libbcache/io_types.h')
-rw-r--r--libbcache/io_types.h145
1 files changed, 0 insertions, 145 deletions
diff --git a/libbcache/io_types.h b/libbcache/io_types.h
deleted file mode 100644
index ca1b0192..00000000
--- a/libbcache/io_types.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef _BCACHE_IO_TYPES_H
-#define _BCACHE_IO_TYPES_H
-
-#include "btree_types.h"
-#include "buckets_types.h"
-#include "keylist_types.h"
-
-#include <linux/llist.h>
-#include <linux/workqueue.h>
-
-struct bch_read_bio {
- /*
- * Reads will often have to be split, and if the extent being read from
- * was checksummed or compressed we'll also have to allocate bounce
- * buffers and copy the data back into the original bio.
- *
- * If we didn't have to split, we have to save and restore the original
- * bi_end_io - @split below indicates which:
- */
- union {
- struct bch_read_bio *parent;
- bio_end_io_t *orig_bi_end_io;
- };
-
- /*
- * Saved copy of parent->bi_iter, from submission time - allows us to
- * resubmit on IO error, and also to copy data back to the original bio
- * when we're bouncing:
- */
- struct bvec_iter parent_iter;
-
- unsigned submit_time_us;
- u16 flags;
- u8 bounce:1,
- split:1;
-
- struct bch_fs *c;
- struct bch_dev *ca;
- struct bch_extent_ptr ptr;
- struct bch_extent_crc128 crc;
- struct bversion version;
-
- struct cache_promote_op *promote;
-
- /*
- * If we have to retry the read (IO error, checksum failure, read stale
- * data (raced with allocator), we retry the portion of the parent bio
- * that failed (i.e. this bio's portion, parent_iter).
- *
- * But we need to stash the inode somewhere:
- */
- u64 inode;
-
- struct work_struct work;
-
- struct bio bio;
-};
-
-static inline struct bch_read_bio *
-bch_rbio_parent(struct bch_read_bio *rbio)
-{
- return rbio->split ? rbio->parent : rbio;
-}
-
-struct bch_write_bio {
- struct bch_fs *c;
- struct bch_dev *ca;
- union {
- struct bio *orig;
- struct closure *cl;
- };
-
- unsigned submit_time_us;
- unsigned split:1,
- bounce:1,
- put_bio:1;
-
- /* Only for btree writes: */
- unsigned used_mempool:1;
- u8 order;
-
- struct bio bio;
-};
-
-struct bch_replace_info {
- struct extent_insert_hook hook;
- /* How many insertions succeeded */
- unsigned successes;
- /* How many insertions failed */
- unsigned failures;
- BKEY_PADDED(key);
-};
-
-struct bch_write_op {
- struct closure cl;
- struct bch_fs *c;
- struct workqueue_struct *io_wq;
- struct bch_write_bio *bio;
-
- unsigned written; /* sectors */
-
- short error;
-
- u16 flags;
- unsigned csum_type:4;
- unsigned compression_type:4;
- unsigned nr_replicas:4;
- unsigned alloc_reserve:4;
- unsigned nonce:14;
-
- struct bpos pos;
- struct bversion version;
-
- /* For BCH_WRITE_DATA_COMPRESSED: */
- struct bch_extent_crc128 crc;
- unsigned size;
-
- struct disk_reservation res;
-
- struct write_point *wp;
-
- union {
- u8 open_buckets[16];
- struct {
- struct bch_write_op *next;
- unsigned long expires;
- };
- };
-
- /*
- * If caller wants to flush but hasn't passed us a journal_seq ptr, we
- * still need to stash the journal_seq somewhere:
- */
- union {
- u64 *journal_seq_p;
- u64 journal_seq;
- };
-
- int (*index_update_fn)(struct bch_write_op *);
-
- struct keylist insert_keys;
- u64 inline_keys[BKEY_EXTENT_U64s_MAX * 2];
-};
-
-#endif /* _BCACHE_IO_TYPES_H */