akiradeveloper / dm-writeboost

Log-structured Caching for Linux
GNU General Public License v2.0
123 stars 19 forks source link

Compile error with 4.8-rc6 #160

Closed akiradeveloper closed 8 years ago

akiradeveloper commented 8 years ago

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
akiradeveloper commented 8 years ago

bi_rw is purged... wtf