On Wed, 15 May 2024, Jens Axboe wrote: > On 5/15/24 7:28 AM, Mikulas Patocka wrote: > > @@ -177,9 +177,9 @@ static inline int blk_integrity_rq(struc > > return 0; > > } > > > > -static inline struct bio_vec *rq_integrity_vec(struct request *rq) > > +static inline struct bio_vec rq_integrity_vec(struct request *rq) > > { > > - return NULL; > > + BUG(); > > } > > #endif /* CONFIG_BLK_DEV_INTEGRITY */ > > #endif /* _LINUX_BLK_INTEGRITY_H */ > > Let's please not do that. If it's not used outside of > CONFIG_BLK_DEV_INTEGRITY, it should just go away. > > -- > Jens Axboe It can't go away - it is guarded with blk_integrity_rq (which always returns 0 if compiled without CONFIG_BLK_DEV_INTEGRITY), so the compiler will optimize-out the calls to rq_integrity_vec. But we can't delete rq_integrity_vec, because the source code references it. Should rq_integrity_vec return empty 'struct bio_vec' instead? Or should we add more CONFIG_BLK_DEV_INTEGRITY tests to disable the call locations? Mikulas