dm writecache: add unlikely for getting two block with same LBA
authorHuaisheng Ye <yehs1@lenovo.com>
Sun, 25 Aug 2019 07:24:32 +0000 (15:24 +0800)
committerMike Snitzer <snitzer@redhat.com>
Mon, 26 Aug 2019 14:54:41 +0000 (10:54 -0400)
In function writecache_writeback, entries g and f has same original
sector only happens at entry f has been committed, but entry g has
NOT yet.

The probability of this happening is very low in the following
256 blocks at most of entry e.

Signed-off-by: Huaisheng Ye <yehs1@lenovo.com>
Acked-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-writecache.c

index 5c7009d..3643084 100644 (file)
@@ -1628,8 +1628,8 @@ restart:
                        if (unlikely(!next_node))
                                break;
                        g = container_of(next_node, struct wc_entry, rb_node);
-                       if (read_original_sector(wc, g) ==
-                           read_original_sector(wc, f)) {
+                       if (unlikely(read_original_sector(wc, g) ==
+                           read_original_sector(wc, f))) {
                                f = g;
                                continue;
                        }