bcache: Break up struct search

With all the recent refactoring around struct btree op struct search has
gotten rather large.

But we can now easily break it up in a different way - we break out
struct btree_insert_op which is for inserting data into the cache, and
that's now what the copying gc code uses - struct search is now specific
to request.c

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
This commit is contained in:
Kent Overstreet
2013-09-10 19:02:45 -07:00
parent cc7b881921
commit 220bb38c21
9 changed files with 448 additions and 465 deletions

View File

@@ -3,46 +3,25 @@
#include <linux/cgroup.h>
struct search {
/* Stack frame for bio_complete */
struct data_insert_op {
struct closure cl;
struct closure btree;
struct bcache_device *d;
struct cache_set *c;
struct task_struct *task;
struct bbio bio;
struct bio *orig_bio;
struct bio *cache_miss;
/* Bio to be inserted into the cache */
struct bio *cache_bio;
unsigned cache_bio_sectors;
struct bio *bio;
unsigned inode;
uint16_t write_prio;
short error;
unsigned recoverable:1;
unsigned unaligned_bvec:1;
unsigned write:1;
unsigned writeback:1;
unsigned csum:1;
unsigned bypass:1;
unsigned writeback:1;
unsigned flush_journal:1;
unsigned csum:1;
unsigned replace:1;
unsigned replace_collision:1;
unsigned insert_data_done:1;
unsigned replace:1;
unsigned insert_collision:1;
uint16_t write_prio;
/* IO error returned to s->bio */
short error;
unsigned long start_time;
struct btree_op op;
/* Anything past this point won't get zeroed in search_alloc() */
struct keylist insert_keys;