瀏覽代碼

bcache: Fix moving_pred()

Avoid a potential null pointer deref (e.g. from check keys for cache misses)

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Kent Overstreet 12 年之前
父節點
當前提交
10d9dcf6ee
共有 1 個文件被更改,包括 3 次插入5 次删除
  1. 3 5
      drivers/md/bcache/movinggc.c

+ 3 - 5
drivers/md/bcache/movinggc.c

@@ -24,12 +24,10 @@ static bool moving_pred(struct keybuf *buf, struct bkey *k)
 					   moving_gc_keys);
 	unsigned i;
 
-	for (i = 0; i < KEY_PTRS(k); i++) {
-		struct bucket *g = PTR_BUCKET(c, k, i);
-
-		if (GC_MOVE(g))
+	for (i = 0; i < KEY_PTRS(k); i++)
+		if (ptr_available(c, k, i) &&
+		    GC_MOVE(PTR_BUCKET(c, k, i)))
 			return true;
-	}
 
 	return false;
 }