rdev->sb_loaded = 0;
 
-       if (!sync_page_io(rdev, 0, size, rdev->sb_page, REQ_OP_READ, 0, true)) {
+       if (!sync_page_io(rdev, 0, size, rdev->sb_page, REQ_OP_READ, true)) {
                DMERR("Failed to read superblock of device at position %d",
                      rdev->raid_disk);
                md_error(rdev->mddev, rdev);
 
 
                if (sync_page_io(rdev, target,
                                 roundup(size, bdev_logical_block_size(rdev->bdev)),
-                                page, REQ_OP_READ, 0, true)) {
+                                page, REQ_OP_READ, true)) {
                        page->index = index;
                        return 0;
                }
 
 }
 
 int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
-                struct page *page, int op, int op_flags, bool metadata_op)
+                struct page *page, blk_opf_t opf, bool metadata_op)
 {
        struct bio bio;
        struct bio_vec bvec;
 
        if (metadata_op && rdev->meta_bdev)
-               bio_init(&bio, rdev->meta_bdev, &bvec, 1, op | op_flags);
+               bio_init(&bio, rdev->meta_bdev, &bvec, 1, opf);
        else
-               bio_init(&bio, rdev->bdev, &bvec, 1, op | op_flags);
+               bio_init(&bio, rdev->bdev, &bvec, 1, opf);
 
        if (metadata_op)
                bio.bi_iter.bi_sector = sector + rdev->sb_start;
        if (rdev->sb_loaded)
                return 0;
 
-       if (!sync_page_io(rdev, 0, size, rdev->sb_page, REQ_OP_READ, 0, true))
+       if (!sync_page_io(rdev, 0, size, rdev->sb_page, REQ_OP_READ, true))
                goto fail;
        rdev->sb_loaded = 1;
        return 0;
                        return -EINVAL;
                bb_sector = (long long)offset;
                if (!sync_page_io(rdev, bb_sector, sectors << 9,
-                                 rdev->bb_page, REQ_OP_READ, 0, true))
+                                 rdev->bb_page, REQ_OP_READ, true))
                        return -EIO;
                bbp = (__le64 *)page_address(rdev->bb_page);
                rdev->badblocks.shift = sb->bblog_shift;
 
                           sector_t sector, int size, struct page *page);
 extern int md_super_wait(struct mddev *mddev);
 extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
-                       struct page *page, int op, int op_flags,
-                       bool metadata_op);
+               struct page *page, blk_opf_t opf, bool metadata_op);
 extern void md_do_sync(struct md_thread *thread);
 extern void md_new_event(void);
 extern void md_allow_write(struct mddev *mddev);
 
 }
 
 static int r1_sync_page_io(struct md_rdev *rdev, sector_t sector,
-                           int sectors, struct page *page, int rw)
+                          int sectors, struct page *page, int rw)
 {
-       if (sync_page_io(rdev, sector, sectors << 9, page, rw, 0, false))
+       if (sync_page_io(rdev, sector, sectors << 9, page, rw, false))
                /* success */
                return 1;
        if (rw == WRITE) {
                                rdev = conf->mirrors[d].rdev;
                                if (sync_page_io(rdev, sect, s<<9,
                                                 pages[idx],
-                                                REQ_OP_READ, 0, false)) {
+                                                REQ_OP_READ, false)) {
                                        success = 1;
                                        break;
                                }
                                atomic_inc(&rdev->nr_pending);
                                rcu_read_unlock();
                                if (sync_page_io(rdev, sect, s<<9,
-                                        conf->tmppage, REQ_OP_READ, 0, false))
+                                        conf->tmppage, REQ_OP_READ, false))
                                        success = 1;
                                rdev_dec_pending(rdev, mddev);
                                if (success)
 
                                  addr,
                                  s << 9,
                                  pages[idx],
-                                 REQ_OP_READ, 0, false);
+                                 REQ_OP_READ, false);
                if (ok) {
                        rdev = conf->mirrors[dw].rdev;
                        addr = r10_bio->devs[1].addr + sect;
                                          addr,
                                          s << 9,
                                          pages[idx],
-                                         REQ_OP_WRITE, 0, false);
+                                         REQ_OP_WRITE, false);
                        if (!ok) {
                                set_bit(WriteErrorSeen, &rdev->flags);
                                if (!test_and_set_bit(WantReplacement,
        if (is_badblock(rdev, sector, sectors, &first_bad, &bad_sectors)
            && (rw == READ || test_bit(WriteErrorSeen, &rdev->flags)))
                return -1;
-       if (sync_page_io(rdev, sector, sectors << 9, page, rw, 0, false))
+       if (sync_page_io(rdev, sector, sectors << 9, page, rw, false))
                /* success */
                return 1;
        if (rw == WRITE) {
                                                       sect,
                                                       s<<9,
                                                       conf->tmppage,
-                                                      REQ_OP_READ, 0, false);
+                                                      REQ_OP_READ, false);
                                rdev_dec_pending(rdev, mddev);
                                rcu_read_lock();
                                if (success)
                                               addr,
                                               s << 9,
                                               pages[idx],
-                                              REQ_OP_READ, 0, false);
+                                              REQ_OP_READ, false);
                        rdev_dec_pending(rdev, mddev);
                        rcu_read_lock();
                        if (success)
 
        mb = page_address(page);
        mb->checksum = cpu_to_le32(crc32c_le(log->uuid_checksum,
                                             mb, PAGE_SIZE));
-       if (!sync_page_io(log->rdev, pos, PAGE_SIZE, page, REQ_OP_WRITE,
+       if (!sync_page_io(log->rdev, pos, PAGE_SIZE, page, REQ_OP_WRITE |
                          REQ_SYNC | REQ_FUA, false)) {
                __free_page(page);
                return -EIO;
                        atomic_inc(&rdev->nr_pending);
                        rcu_read_unlock();
                        sync_page_io(rdev, sh->sector, PAGE_SIZE,
-                                    sh->dev[disk_index].page, REQ_OP_WRITE, 0,
+                                    sh->dev[disk_index].page, REQ_OP_WRITE,
                                     false);
                        rdev_dec_pending(rdev, rdev->mddev);
                        rcu_read_lock();
                        atomic_inc(&rrdev->nr_pending);
                        rcu_read_unlock();
                        sync_page_io(rrdev, sh->sector, PAGE_SIZE,
-                                    sh->dev[disk_index].page, REQ_OP_WRITE, 0,
+                                    sh->dev[disk_index].page, REQ_OP_WRITE,
                                     false);
                        rdev_dec_pending(rrdev, rrdev->mddev);
                        rcu_read_lock();
                                                  PAGE_SIZE));
                                kunmap_atomic(addr);
                                sync_page_io(log->rdev, write_pos, PAGE_SIZE,
-                                            dev->page, REQ_OP_WRITE, 0, false);
+                                            dev->page, REQ_OP_WRITE, false);
                                write_pos = r5l_ring_add(log, write_pos,
                                                         BLOCK_SECTORS);
                                offset += sizeof(__le32) +
                mb->checksum = cpu_to_le32(crc32c_le(log->uuid_checksum,
                                                     mb, PAGE_SIZE));
                sync_page_io(log->rdev, ctx->pos, PAGE_SIZE, page,
-                            REQ_OP_WRITE, REQ_SYNC | REQ_FUA, false);
+                            REQ_OP_WRITE | REQ_SYNC | REQ_FUA, false);
                sh->log_start = ctx->pos;
                list_add_tail(&sh->r5c, &log->stripe_in_journal_list);
                atomic_inc(&log->stripe_in_journal_count);
        if (!page)
                return -ENOMEM;
 
-       if (!sync_page_io(rdev, cp, PAGE_SIZE, page, REQ_OP_READ, 0, false)) {
+       if (!sync_page_io(rdev, cp, PAGE_SIZE, page, REQ_OP_READ, false)) {
                ret = -EIO;
                goto ioerr;
        }
 
                                 __func__, indent, "", rdev->bdev,
                                 (unsigned long long)sector);
                        if (!sync_page_io(rdev, sector, block_size, page2,
-                                       REQ_OP_READ, 0, false)) {
+                                       REQ_OP_READ, false)) {
                                md_error(mddev, rdev);
                                pr_debug("%s:%*s read failed!\n", __func__,
                                         indent, "");
                                 (unsigned long long)(ppl_sector + i));
                        if (!sync_page_io(log->rdev,
                                        ppl_sector - log->rdev->data_offset + i,
-                                       block_size, page2, REQ_OP_READ, 0,
+                                       block_size, page2, REQ_OP_READ,
                                        false)) {
                                pr_debug("%s:%*s read failed!\n", __func__,
                                         indent, "");
                         (unsigned long long)parity_sector,
                         parity_rdev->bdev);
                if (!sync_page_io(parity_rdev, parity_sector, block_size,
-                               page1, REQ_OP_WRITE, 0, false)) {
+                                 page1, REQ_OP_WRITE, false)) {
                        pr_debug("%s:%*s parity write error!\n", __func__,
                                 indent, "");
                        md_error(mddev, parity_rdev);
                        int s = pp_size > PAGE_SIZE ? PAGE_SIZE : pp_size;
 
                        if (!sync_page_io(rdev, sector - rdev->data_offset,
-                                       s, page, REQ_OP_READ, 0, false)) {
+                                       s, page, REQ_OP_READ, false)) {
                                md_error(mddev, rdev);
                                ret = -EIO;
                                goto out;
 
        if (!sync_page_io(rdev, rdev->ppl.sector - rdev->data_offset,
                          PPL_HEADER_SIZE, page, REQ_OP_WRITE | REQ_SYNC |
-                         REQ_FUA, 0, false)) {
+                         REQ_FUA, false)) {
                md_error(rdev->mddev, rdev);
                ret = -EIO;
        }
                if (!sync_page_io(rdev,
                                  rdev->ppl.sector - rdev->data_offset +
                                  pplhdr_offset, PAGE_SIZE, page, REQ_OP_READ,
-                                 0, false)) {
+                                 false)) {
                        md_error(mddev, rdev);
                        ret = -EIO;
                        /* if not able to read - don't recover any PPL */