I've just upgraded the kernel to 4.8-rc6 and found dm-writeboost can't be successfully built with the kernel.
I think bio structure is changed.
~/dm-writeboost$ make
cp -r src /usr/src/dm-writeboost-2.2.5
cp: cannot create directory '/usr/src/dm-writeboost-2.2.5/src': Permission denied
make: *** [install] Error 1
akira@Hercules:~/dm-writeboost$ cd src/
akira@Hercules:~/dm-writeboost/src$ make
make -C /lib/modules/4.8.0-rc6/build M=/home/akira/dm-writeboost/src modules
make[1]: Entering directory `/home/akira/linux'
CC [M] /home/akira/dm-writeboost/src/dm-writeboost-target.o
In file included from /home/akira/dm-writeboost/src/dm-writeboost.h:36:0,
from /home/akira/dm-writeboost/src/dm-writeboost-target.c:23:
/home/akira/dm-writeboost/src/dm-writeboost-target.c: In function 'wb_io_internal':
/home/akira/dm-writeboost/src/dm-writeboost-target.c:99:58: error: 'struct dm_io_request' has no member named 'bi_rw'
buf, (unsigned long long) regions->sector, io_req->bi_rw);
^
./include/linux/device-mapper.h:536:61: note: in definition of macro 'DMERR'
printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c: In function 'fill_payload_by_backing':
/home/akira/dm-writeboost/src/dm-writeboost-target.c:611:3: error: unknown field 'bi_rw' specified in initializer
.bi_rw = READ,
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c:611:3: warning: excess elements in struct initializer
/home/akira/dm-writeboost/src/dm-writeboost-target.c:611:3: warning: (near initialization for '(anonymous)')
/home/akira/dm-writeboost/src/dm-writeboost-target.c: In function 'read_mb':
/home/akira/dm-writeboost/src/dm-writeboost-target.c:663:4: error: unknown field 'bi_rw' specified in initializer
.bi_rw = READ,
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c:663:4: warning: excess elements in struct initializer
/home/akira/dm-writeboost/src/dm-writeboost-target.c:663:4: warning: (near initialization for '(anonymous)')
/home/akira/dm-writeboost/src/dm-writeboost-target.c: In function 'complete_process_write':
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1201:9: error: 'struct bio' has no member named 'bi_rw'
if (bio->bi_rw & REQ_FUA) {
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c: In function 'read_backing_async':
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1314:3: error: unknown field 'bi_rw' specified in initializer
.bi_rw = READ,
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1314:3: warning: excess elements in struct initializer
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1314:3: warning: (near initialization for '(anonymous)')
/home/akira/dm-writeboost/src/dm-writeboost-target.c: In function 'writeboost_map':
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1455:9: error: 'struct bio' has no member named 'bi_rw'
if (bio->bi_rw & REQ_FLUSH)
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1455:19: error: 'REQ_FLUSH' undeclared (first use in this function)
if (bio->bi_rw & REQ_FLUSH)
^
/home/akira/dm-writeboost/src/dm-writeboost-target.c:1455:19: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [/home/akira/dm-writeboost/src/dm-writeboost-target.o] Error 1
make[1]: *** [_module_/home/akira/dm-writeboost/src] Error 2
make[1]: Leaving directory `/home/akira/linux'
make: *** [all] Error 2
I've just upgraded the kernel to 4.8-rc6 and found dm-writeboost can't be successfully built with the kernel.
I think bio structure is changed.