dm-bufio: virt_to_phys() doesn't change remainder modulo PAGE_SIZE
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 2 Jan 2016 17:45:27 +0000 (12:45 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 4 Jan 2016 15:29:07 +0000 (10:29 -0500)
... so virt_to_phys(p) & (PAGE_SIZE - 1) is a very odd way to
spell offset_in_page(p).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/md/dm-bufio.c

index 2dd3308..adeb8d0 100644 (file)
@@ -630,7 +630,7 @@ static void use_inline_bio(struct dm_buffer *b, int rw, sector_t block,
        do {
                if (!bio_add_page(&b->bio, virt_to_page(ptr),
                                  len < PAGE_SIZE ? len : PAGE_SIZE,
-                                 virt_to_phys(ptr) & (PAGE_SIZE - 1))) {
+                                 offset_in_page(ptr))) {
                        BUG_ON(b->c->block_size <= PAGE_SIZE);
                        use_dmio(b, rw, block, end_io);
                        return;