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>
diff --git a/drivers/md/bcache/request.h b/drivers/md/bcache/request.h
index f0e930b..54d7de2 100644
--- a/drivers/md/bcache/request.h
+++ b/drivers/md/bcache/request.h
@@ -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;