diff options
Diffstat (limited to 'include/linux/bio.h')
| -rw-r--r-- | include/linux/bio.h | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index 5be93f18d84..7fc5606e6ea 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h @@ -391,6 +391,18 @@ extern struct bio *bio_copy_kern(struct request_queue *, void *, unsigned int,  				 gfp_t, int);  extern void bio_set_pages_dirty(struct bio *bio);  extern void bio_check_pages_dirty(struct bio *bio); + +#ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE +# error	"You should define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE for your platform" +#endif +#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE +extern void bio_flush_dcache_pages(struct bio *bi); +#else +static inline void bio_flush_dcache_pages(struct bio *bi) +{ +} +#endif +  extern struct bio *bio_copy_user(struct request_queue *, struct rq_map_data *,  				 unsigned long, unsigned int, int, gfp_t);  extern struct bio *bio_copy_user_iov(struct request_queue *, @@ -450,11 +462,8 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;  /*   * remember never ever reenable interrupts between a bvec_kmap_irq and   * bvec_kunmap_irq! - * - * This function MUST be inlined - it plays with the CPU interrupt flags.   */ -static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec, -		unsigned long *flags) +static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)  {  	unsigned long addr; @@ -470,8 +479,7 @@ static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,  	return (char *) addr + bvec->bv_offset;  } -static __always_inline void bvec_kunmap_irq(char *buffer, -		unsigned long *flags) +static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)  {  	unsigned long ptr = (unsigned long) buffer & PAGE_MASK;  |