bcache: Fix bch_ptr_bad()
authorKent Overstreet <kmo@daterainc.com>
Thu, 25 Jul 2013 01:14:44 +0000 (18:14 -0700)
committerKent Overstreet <kmo@daterainc.com>
Mon, 11 Nov 2013 05:56:33 +0000 (21:56 -0800)
commite58ff155034791ed3a5563d24a50fae0a8c1617c
treedf8019038a66203db7af65fc045d41561a228255
parent81ab4190ac17df41686a37c97f701623276b652a
bcache: Fix bch_ptr_bad()

Previously, bch_ptr_bad() could return false when there was a pointer to
a nonexistant device... it only filtered out keys with PTR_CHECK_DEV
pointers.

This behaviour was intended for multiple cache device support; for that,
just because the device for one of the pointers has gone away doesn't
mean we want to filter out the rest of the pointers.

But we don't yet explicitly filter/check individual pointers, so without
that this behaviour was wrong - a corrupt bkey with a bad device pointer
could cause us to deref a bad pointer. Doh.

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
drivers/md/bcache/bset.c