diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index 26e2aae5..15e5d7d1 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -6,16 +6,6 @@ ccflags-y += -include $(src)/kernelcompat.h -# -# v4.7-12414-g1eff9d322a44 -# -# Renamed bi_rw to bi_opf to force old code to catch up. We use it as a -# single switch between old and new bio structures. -# -ifneq (,$(shell grep 'bi_opf' include/linux/blk_types.h)) -ccflags-y += -DKC_BIO_BI_OPF -endif - # # v4.12-rc2-201-g4e4cbee93d56 # diff --git a/kmod/src/block.c b/kmod/src/block.c index 5ad81377..8d581da3 100644 --- a/kmod/src/block.c +++ b/kmod/src/block.c @@ -450,7 +450,7 @@ static void KC_DECLARE_BIO_END_IO(block_bio_end_io, struct bio *bio) struct super_block *sb = bp->sb; TRACE_BLOCK(end_io, bp); - block_end_io(sb, kc_bio_get_opf(bio), bp, kc_bio_get_errno(bio)); + block_end_io(sb, bio->bi_opf, bp, kc_bio_get_errno(bio)); bio_put(bio); } @@ -499,7 +499,7 @@ static int block_submit_bio(struct super_block *sb, struct block_private *bp, break; } - kc_bio_set_sector(bio, sector + (off >> 9)); + bio->bi_iter.bi_sector = sector + (off >> 9); bio->bi_end_io = block_bio_end_io; bio->bi_private = bp; @@ -516,13 +516,13 @@ static int block_submit_bio(struct super_block *sb, struct block_private *bp, BUG(); if (!bio_add_page(bio, page, PAGE_SIZE, 0)) { - kc_submit_bio(bio); + submit_bio(bio); bio = NULL; } } if (bio) - kc_submit_bio(bio); + submit_bio(bio); blk_finish_plug(&plug); @@ -1236,7 +1236,7 @@ static int sm_block_io(struct super_block *sb, struct block_device *bdev, blk_op goto out; } - kc_bio_set_sector(bio, blkno << (SCOUTFS_BLOCK_SM_SHIFT - 9)); + bio->bi_iter.bi_sector = blkno << (SCOUTFS_BLOCK_SM_SHIFT - 9); bio->bi_end_io = sm_block_bio_end_io; bio->bi_private = &sbc; bio_add_page(bio, page, SCOUTFS_BLOCK_SM_SIZE, 0); @@ -1244,7 +1244,7 @@ static int sm_block_io(struct super_block *sb, struct block_device *bdev, blk_op init_completion(&sbc.comp); sbc.err = 0; - kc_submit_bio(bio); + submit_bio(bio); wait_for_completion(&sbc.comp); ret = sbc.err; diff --git a/kmod/src/kernelcompat.h b/kmod/src/kernelcompat.h index 67fea5a0..af36ea88 100644 --- a/kmod/src/kernelcompat.h +++ b/kmod/src/kernelcompat.h @@ -14,45 +14,6 @@ #define WQ_NON_REENTRANT 0 #endif - - -#ifdef KC_BIO_BI_OPF -#define kc_bio_get_opf(bio) \ -({ \ - (bio)->bi_opf; \ -}) -#define kc_bio_set_opf(bio, opf) \ -do { \ - (bio)->bi_opf = opf; \ -} while (0) -#define kc_bio_set_sector(bio, sect) \ -do { \ - (bio)->bi_iter.bi_sector = sect;\ -} while (0) -#define kc_submit_bio(bio) submit_bio(bio) -#else -#define kc_bio_get_opf(bio) \ -({ \ - (bio)->bi_rw; \ -}) -#define kc_bio_set_opf(bio, opf) \ -do { \ - (bio)->bi_rw = opf; \ -} while (0) -#define kc_bio_set_sector(bio, sect) \ -do { \ - (bio)->bi_sector = sect; \ -} while (0) -#define kc_submit_bio(bio) \ -do { \ - submit_bio((bio)->bi_rw, bio); \ -} while (0) -#define bio_set_dev(bio, bdev) \ -do { \ - (bio)->bi_bdev = (bdev); \ -} while (0) -#endif - #ifdef KC_BIO_BI_STATUS #define KC_DECLARE_BIO_END_IO(name, bio) name(bio) #define kc_bio_get_errno(bio) ({ blk_status_to_errno((bio)->bi_status); }) @@ -196,7 +157,7 @@ static inline struct bio *kc_bio_alloc(struct block_device *bdev, unsigned short { struct bio *b = bio_alloc(gfp_mask, nr_vecs); if (b) { - kc_bio_set_opf(b, opf); + b->bi_opf = opf; bio_set_dev(b, bdev); } return b;