| From 2fe80d3bbf1c8bd9efc5b8154207c8dd104e7306 Mon Sep 17 00:00:00 2001 |
| From: Kent Overstreet <kmo@daterainc.com> |
| Date: Thu, 10 Oct 2013 17:31:15 -0700 |
| Subject: bcache: Fix a null ptr deref regression |
| |
| From: Kent Overstreet <kmo@daterainc.com> |
| |
| commit 2fe80d3bbf1c8bd9efc5b8154207c8dd104e7306 upstream. |
| |
| Commit c0f04d88e46d ("bcache: Fix flushes in writeback mode") was fixing |
| a reported data corruption bug, but it seems some last minute |
| refactoring or rebasing introduced a null pointer deref. |
| |
| Signed-off-by: Kent Overstreet <kmo@daterainc.com> |
| Reported-by: Gabriel de Perthuis <g2p.code@gmail.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/md/bcache/request.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/drivers/md/bcache/request.c |
| +++ b/drivers/md/bcache/request.c |
| @@ -996,6 +996,7 @@ static void request_write(struct cached_ |
| closure_bio_submit(bio, cl, s->d); |
| } else { |
| bch_writeback_add(dc); |
| + s->op.cache_bio = bio; |
| |
| if (bio->bi_rw & REQ_FLUSH) { |
| /* Also need to send a flush to the backing device */ |
| @@ -1008,8 +1009,6 @@ static void request_write(struct cached_ |
| flush->bi_private = cl; |
| |
| closure_bio_submit(flush, cl, s->d); |
| - } else { |
| - s->op.cache_bio = bio; |
| } |
| } |
| out: |