aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache/writeback.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/bcache/writeback.c')
-rw-r--r--drivers/md/bcache/writeback.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/md/bcache/writeback.c b/drivers/md/bcache/writeback.c
index d0968e8938f7..346a5341faca 100644
--- a/drivers/md/bcache/writeback.c
+++ b/drivers/md/bcache/writeback.c
@@ -146,16 +146,14 @@ static void write_dirty_finish(struct closure *cl)
146 bch_btree_op_init(&op, -1); 146 bch_btree_op_init(&op, -1);
147 bch_keylist_init(&keys); 147 bch_keylist_init(&keys);
148 148
149 op.type = BTREE_REPLACE; 149 bkey_copy(keys.top, &w->key);
150 bkey_copy(&op.replace, &w->key); 150 SET_KEY_DIRTY(keys.top, false);
151 151 bch_keylist_push(&keys);
152 SET_KEY_DIRTY(&w->key, false);
153 bch_keylist_add(&keys, &w->key);
154 152
155 for (i = 0; i < KEY_PTRS(&w->key); i++) 153 for (i = 0; i < KEY_PTRS(&w->key); i++)
156 atomic_inc(&PTR_BUCKET(dc->disk.c, &w->key, i)->pin); 154 atomic_inc(&PTR_BUCKET(dc->disk.c, &w->key, i)->pin);
157 155
158 bch_btree_insert(&op, dc->disk.c, &keys, NULL); 156 bch_btree_insert(&op, dc->disk.c, &keys, NULL, &w->key);
159 157
160 if (op.insert_collision) 158 if (op.insert_collision)
161 trace_bcache_writeback_collision(&w->key); 159 trace_bcache_writeback_collision(&w->key);