int             map,
        int             *buf_offset,
        int             *count,
-       int             op,
-       int             op_flags)
+       int             op)
 {
        int             page_index;
        int             total_nr_pages = bp->b_page_count;
        bio->bi_iter.bi_sector = sector;
        bio->bi_end_io = xfs_buf_bio_end_io;
        bio->bi_private = bp;
-       bio_set_op_attrs(bio, op, op_flags);
+       bio->bi_opf = op;
 
        for (; size && nr_pages; nr_pages--, page_index++) {
                int     rbytes, nbytes = PAGE_SIZE - offset;
 {
        struct blk_plug plug;
        int             op;
-       int             op_flags = 0;
        int             offset;
        int             size;
        int             i;
                                dump_stack();
                        }
                }
-       } else if (bp->b_flags & XBF_READ_AHEAD) {
-               op = REQ_OP_READ;
-               op_flags = REQ_RAHEAD;
        } else {
                op = REQ_OP_READ;
+               if (bp->b_flags & XBF_READ_AHEAD)
+                       op |= REQ_RAHEAD;
        }
 
        /* we only use the buffer cache for meta-data */
-       op_flags |= REQ_META;
+       op |= REQ_META;
 
        /*
         * Walk all the vectors issuing IO on them. Set up the initial offset
        size = BBTOB(bp->b_length);
        blk_start_plug(&plug);
        for (i = 0; i < bp->b_map_count; i++) {
-               xfs_buf_ioapply_map(bp, i, &offset, &size, op, op_flags);
+               xfs_buf_ioapply_map(bp, i, &offset, &size, op);
                if (bp->b_error)
                        break;
                if (size <= 0)