diff options
Diffstat (limited to 'drivers/md/bcache/writeback.c')
-rw-r--r-- | drivers/md/bcache/writeback.c | 10 |
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); |