You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
block,fs: use REQ_* flags directly
Remove the WRITE_* and READ_SYNC wrappers, and just use the flags directly. Where applicable this also drops usage of the bio_set_op_attrs wrapper. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
committed by
Jens Axboe
parent
a2b809672e
commit
70fd76140a
+2
-2
@@ -330,7 +330,7 @@ static bool blk_kick_flush(struct request_queue *q, struct blk_flush_queue *fq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
flush_rq->cmd_type = REQ_TYPE_FS;
|
flush_rq->cmd_type = REQ_TYPE_FS;
|
||||||
flush_rq->cmd_flags = REQ_OP_FLUSH | WRITE_FLUSH;
|
flush_rq->cmd_flags = REQ_OP_FLUSH | REQ_PREFLUSH;
|
||||||
flush_rq->rq_flags |= RQF_FLUSH_SEQ;
|
flush_rq->rq_flags |= RQF_FLUSH_SEQ;
|
||||||
flush_rq->rq_disk = first_rq->rq_disk;
|
flush_rq->rq_disk = first_rq->rq_disk;
|
||||||
flush_rq->end_io = flush_end_io;
|
flush_rq->end_io = flush_end_io;
|
||||||
@@ -486,7 +486,7 @@ int blkdev_issue_flush(struct block_device *bdev, gfp_t gfp_mask,
|
|||||||
|
|
||||||
bio = bio_alloc(gfp_mask, 0);
|
bio = bio_alloc(gfp_mask, 0);
|
||||||
bio->bi_bdev = bdev;
|
bio->bi_bdev = bdev;
|
||||||
bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_FLUSH);
|
bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
|
|
||||||
ret = submit_bio_wait(bio);
|
ret = submit_bio_wait(bio);
|
||||||
|
|
||||||
|
|||||||
@@ -1266,7 +1266,7 @@ static void submit_one_flush(struct drbd_device *device, struct issue_flush_cont
|
|||||||
bio->bi_bdev = device->ldev->backing_bdev;
|
bio->bi_bdev = device->ldev->backing_bdev;
|
||||||
bio->bi_private = octx;
|
bio->bi_private = octx;
|
||||||
bio->bi_end_io = one_flush_endio;
|
bio->bi_end_io = one_flush_endio;
|
||||||
bio_set_op_attrs(bio, REQ_OP_FLUSH, WRITE_FLUSH);
|
bio->bi_opf = REQ_OP_FLUSH | REQ_PREFLUSH;
|
||||||
|
|
||||||
device->flush_jif = jiffies;
|
device->flush_jif = jiffies;
|
||||||
set_bit(FLUSH_PENDING, &device->flags);
|
set_bit(FLUSH_PENDING, &device->flags);
|
||||||
|
|||||||
@@ -1253,14 +1253,14 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
case BLKIF_OP_WRITE:
|
case BLKIF_OP_WRITE:
|
||||||
ring->st_wr_req++;
|
ring->st_wr_req++;
|
||||||
operation = REQ_OP_WRITE;
|
operation = REQ_OP_WRITE;
|
||||||
operation_flags = WRITE_ODIRECT;
|
operation_flags = REQ_SYNC | REQ_IDLE;
|
||||||
break;
|
break;
|
||||||
case BLKIF_OP_WRITE_BARRIER:
|
case BLKIF_OP_WRITE_BARRIER:
|
||||||
drain = true;
|
drain = true;
|
||||||
case BLKIF_OP_FLUSH_DISKCACHE:
|
case BLKIF_OP_FLUSH_DISKCACHE:
|
||||||
ring->st_f_req++;
|
ring->st_f_req++;
|
||||||
operation = REQ_OP_WRITE;
|
operation = REQ_OP_WRITE;
|
||||||
operation_flags = WRITE_FLUSH;
|
operation_flags = REQ_PREFLUSH;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
operation = 0; /* make gcc happy */
|
operation = 0; /* make gcc happy */
|
||||||
@@ -1272,7 +1272,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
nseg = req->operation == BLKIF_OP_INDIRECT ?
|
nseg = req->operation == BLKIF_OP_INDIRECT ?
|
||||||
req->u.indirect.nr_segments : req->u.rw.nr_segments;
|
req->u.indirect.nr_segments : req->u.rw.nr_segments;
|
||||||
|
|
||||||
if (unlikely(nseg == 0 && operation_flags != WRITE_FLUSH) ||
|
if (unlikely(nseg == 0 && operation_flags != REQ_PREFLUSH) ||
|
||||||
unlikely((req->operation != BLKIF_OP_INDIRECT) &&
|
unlikely((req->operation != BLKIF_OP_INDIRECT) &&
|
||||||
(nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST)) ||
|
(nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST)) ||
|
||||||
unlikely((req->operation == BLKIF_OP_INDIRECT) &&
|
unlikely((req->operation == BLKIF_OP_INDIRECT) &&
|
||||||
@@ -1334,7 +1334,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Wait on all outstanding I/O's and once that has been completed
|
/* Wait on all outstanding I/O's and once that has been completed
|
||||||
* issue the WRITE_FLUSH.
|
* issue the flush.
|
||||||
*/
|
*/
|
||||||
if (drain)
|
if (drain)
|
||||||
xen_blk_drain_io(pending_req->ring);
|
xen_blk_drain_io(pending_req->ring);
|
||||||
@@ -1380,7 +1380,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
|
|
||||||
/* This will be hit if the operation was a flush or discard. */
|
/* This will be hit if the operation was a flush or discard. */
|
||||||
if (!bio) {
|
if (!bio) {
|
||||||
BUG_ON(operation_flags != WRITE_FLUSH);
|
BUG_ON(operation_flags != REQ_PREFLUSH);
|
||||||
|
|
||||||
bio = bio_alloc(GFP_KERNEL, 0);
|
bio = bio_alloc(GFP_KERNEL, 0);
|
||||||
if (unlikely(bio == NULL))
|
if (unlikely(bio == NULL))
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ static void bch_btree_node_read(struct btree *b)
|
|||||||
bio->bi_iter.bi_size = KEY_SIZE(&b->key) << 9;
|
bio->bi_iter.bi_size = KEY_SIZE(&b->key) << 9;
|
||||||
bio->bi_end_io = btree_node_read_endio;
|
bio->bi_end_io = btree_node_read_endio;
|
||||||
bio->bi_private = &cl;
|
bio->bi_private = &cl;
|
||||||
bio_set_op_attrs(bio, REQ_OP_READ, REQ_META|READ_SYNC);
|
bio->bi_opf = REQ_OP_READ | REQ_META;
|
||||||
|
|
||||||
bch_bio_map(bio, b->keys.set[0].data);
|
bch_bio_map(bio, b->keys.set[0].data);
|
||||||
|
|
||||||
@@ -393,7 +393,7 @@ static void do_btree_node_write(struct btree *b)
|
|||||||
b->bio->bi_end_io = btree_node_write_endio;
|
b->bio->bi_end_io = btree_node_write_endio;
|
||||||
b->bio->bi_private = cl;
|
b->bio->bi_private = cl;
|
||||||
b->bio->bi_iter.bi_size = roundup(set_bytes(i), block_bytes(b->c));
|
b->bio->bi_iter.bi_size = roundup(set_bytes(i), block_bytes(b->c));
|
||||||
bio_set_op_attrs(b->bio, REQ_OP_WRITE, REQ_META|WRITE_SYNC|REQ_FUA);
|
b->bio->bi_opf = REQ_OP_WRITE | REQ_META | REQ_FUA;
|
||||||
bch_bio_map(b->bio, i);
|
bch_bio_map(b->bio, i);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ void bch_btree_verify(struct btree *b)
|
|||||||
bio->bi_bdev = PTR_CACHE(b->c, &b->key, 0)->bdev;
|
bio->bi_bdev = PTR_CACHE(b->c, &b->key, 0)->bdev;
|
||||||
bio->bi_iter.bi_sector = PTR_OFFSET(&b->key, 0);
|
bio->bi_iter.bi_sector = PTR_OFFSET(&b->key, 0);
|
||||||
bio->bi_iter.bi_size = KEY_SIZE(&v->key) << 9;
|
bio->bi_iter.bi_size = KEY_SIZE(&v->key) << 9;
|
||||||
bio_set_op_attrs(bio, REQ_OP_READ, REQ_META|READ_SYNC);
|
bio->bi_opf = REQ_OP_READ | REQ_META;
|
||||||
bch_bio_map(bio, sorted);
|
bch_bio_map(bio, sorted);
|
||||||
|
|
||||||
submit_bio_wait(bio);
|
submit_bio_wait(bio);
|
||||||
@@ -113,7 +113,7 @@ void bch_data_verify(struct cached_dev *dc, struct bio *bio)
|
|||||||
check = bio_clone(bio, GFP_NOIO);
|
check = bio_clone(bio, GFP_NOIO);
|
||||||
if (!check)
|
if (!check)
|
||||||
return;
|
return;
|
||||||
bio_set_op_attrs(check, REQ_OP_READ, READ_SYNC);
|
check->bi_opf = REQ_OP_READ;
|
||||||
|
|
||||||
if (bio_alloc_pages(check, GFP_NOIO))
|
if (bio_alloc_pages(check, GFP_NOIO))
|
||||||
goto out_put;
|
goto out_put;
|
||||||
|
|||||||
@@ -923,7 +923,7 @@ static void cached_dev_write(struct cached_dev *dc, struct search *s)
|
|||||||
flush->bi_bdev = bio->bi_bdev;
|
flush->bi_bdev = bio->bi_bdev;
|
||||||
flush->bi_end_io = request_endio;
|
flush->bi_end_io = request_endio;
|
||||||
flush->bi_private = cl;
|
flush->bi_private = cl;
|
||||||
bio_set_op_attrs(flush, REQ_OP_WRITE, WRITE_FLUSH);
|
flush->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
|
|
||||||
closure_bio_submit(flush, cl);
|
closure_bio_submit(flush, cl);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ static char *uuid_read(struct cache_set *c, struct jset *j, struct closure *cl)
|
|||||||
return "bad uuid pointer";
|
return "bad uuid pointer";
|
||||||
|
|
||||||
bkey_copy(&c->uuid_bucket, k);
|
bkey_copy(&c->uuid_bucket, k);
|
||||||
uuid_io(c, REQ_OP_READ, READ_SYNC, k, cl);
|
uuid_io(c, REQ_OP_READ, 0, k, cl);
|
||||||
|
|
||||||
if (j->version < BCACHE_JSET_VERSION_UUIDv1) {
|
if (j->version < BCACHE_JSET_VERSION_UUIDv1) {
|
||||||
struct uuid_entry_v0 *u0 = (void *) c->uuids;
|
struct uuid_entry_v0 *u0 = (void *) c->uuids;
|
||||||
@@ -600,7 +600,7 @@ static void prio_read(struct cache *ca, uint64_t bucket)
|
|||||||
ca->prio_last_buckets[bucket_nr] = bucket;
|
ca->prio_last_buckets[bucket_nr] = bucket;
|
||||||
bucket_nr++;
|
bucket_nr++;
|
||||||
|
|
||||||
prio_io(ca, bucket, REQ_OP_READ, READ_SYNC);
|
prio_io(ca, bucket, REQ_OP_READ, 0);
|
||||||
|
|
||||||
if (p->csum != bch_crc64(&p->magic, bucket_bytes(ca) - 8))
|
if (p->csum != bch_crc64(&p->magic, bucket_bytes(ca) - 8))
|
||||||
pr_warn("bad csum reading priorities");
|
pr_warn("bad csum reading priorities");
|
||||||
|
|||||||
@@ -1316,7 +1316,7 @@ int dm_bufio_issue_flush(struct dm_bufio_client *c)
|
|||||||
{
|
{
|
||||||
struct dm_io_request io_req = {
|
struct dm_io_request io_req = {
|
||||||
.bi_op = REQ_OP_WRITE,
|
.bi_op = REQ_OP_WRITE,
|
||||||
.bi_op_flags = WRITE_FLUSH,
|
.bi_op_flags = REQ_PREFLUSH,
|
||||||
.mem.type = DM_IO_KMEM,
|
.mem.type = DM_IO_KMEM,
|
||||||
.mem.ptr.addr = NULL,
|
.mem.ptr.addr = NULL,
|
||||||
.client = c->dm_io,
|
.client = c->dm_io,
|
||||||
|
|||||||
+1
-1
@@ -308,7 +308,7 @@ static int flush_header(struct log_c *lc)
|
|||||||
};
|
};
|
||||||
|
|
||||||
lc->io_req.bi_op = REQ_OP_WRITE;
|
lc->io_req.bi_op = REQ_OP_WRITE;
|
||||||
lc->io_req.bi_op_flags = WRITE_FLUSH;
|
lc->io_req.bi_op_flags = REQ_PREFLUSH;
|
||||||
|
|
||||||
return dm_io(&lc->io_req, 1, &null_location, NULL);
|
return dm_io(&lc->io_req, 1, &null_location, NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ static int mirror_flush(struct dm_target *ti)
|
|||||||
struct mirror *m;
|
struct mirror *m;
|
||||||
struct dm_io_request io_req = {
|
struct dm_io_request io_req = {
|
||||||
.bi_op = REQ_OP_WRITE,
|
.bi_op = REQ_OP_WRITE,
|
||||||
.bi_op_flags = WRITE_FLUSH,
|
.bi_op_flags = REQ_PREFLUSH,
|
||||||
.mem.type = DM_IO_KMEM,
|
.mem.type = DM_IO_KMEM,
|
||||||
.mem.ptr.addr = NULL,
|
.mem.ptr.addr = NULL,
|
||||||
.client = ms->io_client,
|
.client = ms->io_client,
|
||||||
@@ -657,7 +657,7 @@ static void do_write(struct mirror_set *ms, struct bio *bio)
|
|||||||
struct mirror *m;
|
struct mirror *m;
|
||||||
struct dm_io_request io_req = {
|
struct dm_io_request io_req = {
|
||||||
.bi_op = REQ_OP_WRITE,
|
.bi_op = REQ_OP_WRITE,
|
||||||
.bi_op_flags = bio->bi_opf & WRITE_FLUSH_FUA,
|
.bi_op_flags = bio->bi_opf & (REQ_FUA | REQ_PREFLUSH),
|
||||||
.mem.type = DM_IO_BIO,
|
.mem.type = DM_IO_BIO,
|
||||||
.mem.ptr.bio = bio,
|
.mem.ptr.bio = bio,
|
||||||
.notify.fn = write_callback,
|
.notify.fn = write_callback,
|
||||||
|
|||||||
@@ -741,7 +741,7 @@ static void persistent_commit_exception(struct dm_exception_store *store,
|
|||||||
/*
|
/*
|
||||||
* Commit exceptions to disk.
|
* Commit exceptions to disk.
|
||||||
*/
|
*/
|
||||||
if (ps->valid && area_io(ps, REQ_OP_WRITE, WRITE_FLUSH_FUA))
|
if (ps->valid && area_io(ps, REQ_OP_WRITE, REQ_PREFLUSH | REQ_FUA))
|
||||||
ps->valid = 0;
|
ps->valid = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -818,7 +818,7 @@ static int persistent_commit_merge(struct dm_exception_store *store,
|
|||||||
for (i = 0; i < nr_merged; i++)
|
for (i = 0; i < nr_merged; i++)
|
||||||
clear_exception(ps, ps->current_committed - 1 - i);
|
clear_exception(ps, ps->current_committed - 1 - i);
|
||||||
|
|
||||||
r = area_io(ps, REQ_OP_WRITE, WRITE_FLUSH_FUA);
|
r = area_io(ps, REQ_OP_WRITE, REQ_PREFLUSH | REQ_FUA);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1527,7 +1527,7 @@ static struct mapped_device *alloc_dev(int minor)
|
|||||||
|
|
||||||
bio_init(&md->flush_bio);
|
bio_init(&md->flush_bio);
|
||||||
md->flush_bio.bi_bdev = md->bdev;
|
md->flush_bio.bi_bdev = md->bdev;
|
||||||
bio_set_op_attrs(&md->flush_bio, REQ_OP_WRITE, WRITE_FLUSH);
|
md->flush_bio.bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
|
|
||||||
dm_stats_init(&md->stats);
|
dm_stats_init(&md->stats);
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -394,7 +394,7 @@ static void submit_flushes(struct work_struct *ws)
|
|||||||
bi->bi_end_io = md_end_flush;
|
bi->bi_end_io = md_end_flush;
|
||||||
bi->bi_private = rdev;
|
bi->bi_private = rdev;
|
||||||
bi->bi_bdev = rdev->bdev;
|
bi->bi_bdev = rdev->bdev;
|
||||||
bio_set_op_attrs(bi, REQ_OP_WRITE, WRITE_FLUSH);
|
bi->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
atomic_inc(&mddev->flush_pending);
|
atomic_inc(&mddev->flush_pending);
|
||||||
submit_bio(bi);
|
submit_bio(bi);
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
@@ -743,7 +743,7 @@ void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
|
|||||||
bio_add_page(bio, page, size, 0);
|
bio_add_page(bio, page, size, 0);
|
||||||
bio->bi_private = rdev;
|
bio->bi_private = rdev;
|
||||||
bio->bi_end_io = super_written;
|
bio->bi_end_io = super_written;
|
||||||
bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_FLUSH_FUA);
|
bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH | REQ_FUA;
|
||||||
|
|
||||||
atomic_inc(&mddev->pending_writes);
|
atomic_inc(&mddev->pending_writes);
|
||||||
submit_bio(bio);
|
submit_bio(bio);
|
||||||
|
|||||||
@@ -685,7 +685,7 @@ void r5l_flush_stripe_to_raid(struct r5l_log *log)
|
|||||||
bio_reset(&log->flush_bio);
|
bio_reset(&log->flush_bio);
|
||||||
log->flush_bio.bi_bdev = log->rdev->bdev;
|
log->flush_bio.bi_bdev = log->rdev->bdev;
|
||||||
log->flush_bio.bi_end_io = r5l_log_flush_endio;
|
log->flush_bio.bi_end_io = r5l_log_flush_endio;
|
||||||
bio_set_op_attrs(&log->flush_bio, REQ_OP_WRITE, WRITE_FLUSH);
|
log->flush_bio.bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
submit_bio(&log->flush_bio);
|
submit_bio(&log->flush_bio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1053,7 +1053,7 @@ static int r5l_log_write_empty_meta_block(struct r5l_log *log, sector_t pos,
|
|||||||
mb->checksum = cpu_to_le32(crc);
|
mb->checksum = cpu_to_le32(crc);
|
||||||
|
|
||||||
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,
|
||||||
WRITE_FUA, false)) {
|
REQ_FUA, false)) {
|
||||||
__free_page(page);
|
__free_page(page);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -913,7 +913,7 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
|
|||||||
if (test_and_clear_bit(R5_Wantwrite, &sh->dev[i].flags)) {
|
if (test_and_clear_bit(R5_Wantwrite, &sh->dev[i].flags)) {
|
||||||
op = REQ_OP_WRITE;
|
op = REQ_OP_WRITE;
|
||||||
if (test_and_clear_bit(R5_WantFUA, &sh->dev[i].flags))
|
if (test_and_clear_bit(R5_WantFUA, &sh->dev[i].flags))
|
||||||
op_flags = WRITE_FUA;
|
op_flags = REQ_FUA;
|
||||||
if (test_bit(R5_Discard, &sh->dev[i].flags))
|
if (test_bit(R5_Discard, &sh->dev[i].flags))
|
||||||
op = REQ_OP_DISCARD;
|
op = REQ_OP_DISCARD;
|
||||||
} else if (test_and_clear_bit(R5_Wantread, &sh->dev[i].flags))
|
} else if (test_and_clear_bit(R5_Wantread, &sh->dev[i].flags))
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ static void nvmet_execute_rw(struct nvmet_req *req)
|
|||||||
|
|
||||||
if (req->cmd->rw.opcode == nvme_cmd_write) {
|
if (req->cmd->rw.opcode == nvme_cmd_write) {
|
||||||
op = REQ_OP_WRITE;
|
op = REQ_OP_WRITE;
|
||||||
op_flags = WRITE_ODIRECT;
|
op_flags = REQ_SYNC | REQ_IDLE;
|
||||||
if (req->cmd->rw.control & cpu_to_le16(NVME_RW_FUA))
|
if (req->cmd->rw.control & cpu_to_le16(NVME_RW_FUA))
|
||||||
op_flags |= REQ_FUA;
|
op_flags |= REQ_FUA;
|
||||||
} else {
|
} else {
|
||||||
@@ -109,7 +109,7 @@ static void nvmet_execute_flush(struct nvmet_req *req)
|
|||||||
bio->bi_bdev = req->ns->bdev;
|
bio->bi_bdev = req->ns->bdev;
|
||||||
bio->bi_private = req;
|
bio->bi_private = req;
|
||||||
bio->bi_end_io = nvmet_bio_done;
|
bio->bi_end_io = nvmet_bio_done;
|
||||||
bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_FLUSH);
|
bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
|
|
||||||
submit_bio(bio);
|
submit_bio(bio);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ iblock_execute_sync_cache(struct se_cmd *cmd)
|
|||||||
bio = bio_alloc(GFP_KERNEL, 0);
|
bio = bio_alloc(GFP_KERNEL, 0);
|
||||||
bio->bi_end_io = iblock_end_io_flush;
|
bio->bi_end_io = iblock_end_io_flush;
|
||||||
bio->bi_bdev = ib_dev->ibd_bd;
|
bio->bi_bdev = ib_dev->ibd_bd;
|
||||||
bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_FLUSH);
|
bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
if (!immed)
|
if (!immed)
|
||||||
bio->bi_private = cmd;
|
bio->bi_private = cmd;
|
||||||
submit_bio(bio);
|
submit_bio(bio);
|
||||||
@@ -686,15 +686,15 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
|
|||||||
struct iblock_dev *ib_dev = IBLOCK_DEV(dev);
|
struct iblock_dev *ib_dev = IBLOCK_DEV(dev);
|
||||||
struct request_queue *q = bdev_get_queue(ib_dev->ibd_bd);
|
struct request_queue *q = bdev_get_queue(ib_dev->ibd_bd);
|
||||||
/*
|
/*
|
||||||
* Force writethrough using WRITE_FUA if a volatile write cache
|
* Force writethrough using REQ_FUA if a volatile write cache
|
||||||
* is not enabled, or if initiator set the Force Unit Access bit.
|
* is not enabled, or if initiator set the Force Unit Access bit.
|
||||||
*/
|
*/
|
||||||
op = REQ_OP_WRITE;
|
op = REQ_OP_WRITE;
|
||||||
if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
|
if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
|
||||||
if (cmd->se_cmd_flags & SCF_FUA)
|
if (cmd->se_cmd_flags & SCF_FUA)
|
||||||
op_flags = WRITE_FUA;
|
op_flags = REQ_FUA;
|
||||||
else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
|
else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
|
||||||
op_flags = WRITE_FUA;
|
op_flags = REQ_FUA;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
op = REQ_OP_READ;
|
op = REQ_OP_READ;
|
||||||
|
|||||||
+3
-3
@@ -3485,9 +3485,9 @@ static int write_dev_supers(struct btrfs_device *device,
|
|||||||
* to go down lazy.
|
* to go down lazy.
|
||||||
*/
|
*/
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
ret = btrfsic_submit_bh(REQ_OP_WRITE, WRITE_FUA, bh);
|
ret = btrfsic_submit_bh(REQ_OP_WRITE, REQ_FUA, bh);
|
||||||
else
|
else
|
||||||
ret = btrfsic_submit_bh(REQ_OP_WRITE, WRITE_SYNC, bh);
|
ret = btrfsic_submit_bh(REQ_OP_WRITE, REQ_SYNC, bh);
|
||||||
if (ret)
|
if (ret)
|
||||||
errors++;
|
errors++;
|
||||||
}
|
}
|
||||||
@@ -3551,7 +3551,7 @@ static int write_dev_flush(struct btrfs_device *device, int wait)
|
|||||||
|
|
||||||
bio->bi_end_io = btrfs_end_empty_barrier;
|
bio->bi_end_io = btrfs_end_empty_barrier;
|
||||||
bio->bi_bdev = device->bdev;
|
bio->bi_bdev = device->bdev;
|
||||||
bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_FLUSH);
|
bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||||
init_completion(&device->flush_wait);
|
init_completion(&device->flush_wait);
|
||||||
bio->bi_private = &device->flush_wait;
|
bio->bi_private = &device->flush_wait;
|
||||||
device->flush_bio = bio;
|
device->flush_bio = bio;
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ struct extent_page_data {
|
|||||||
*/
|
*/
|
||||||
unsigned int extent_locked:1;
|
unsigned int extent_locked:1;
|
||||||
|
|
||||||
/* tells the submit_bio code to use a WRITE_SYNC */
|
/* tells the submit_bio code to use REQ_SYNC */
|
||||||
unsigned int sync_io:1;
|
unsigned int sync_io:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2047,7 +2047,7 @@ int repair_io_failure(struct inode *inode, u64 start, u64 length, u64 logical,
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
bio->bi_bdev = dev->bdev;
|
bio->bi_bdev = dev->bdev;
|
||||||
bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_SYNC);
|
bio->bi_opf = REQ_OP_WRITE | REQ_SYNC;
|
||||||
bio_add_page(bio, page, length, pg_offset);
|
bio_add_page(bio, page, length, pg_offset);
|
||||||
|
|
||||||
if (btrfsic_submit_bio_wait(bio)) {
|
if (btrfsic_submit_bio_wait(bio)) {
|
||||||
@@ -2388,7 +2388,7 @@ static int bio_readpage_error(struct bio *failed_bio, u64 phy_offset,
|
|||||||
struct inode *inode = page->mapping->host;
|
struct inode *inode = page->mapping->host;
|
||||||
struct extent_io_tree *tree = &BTRFS_I(inode)->io_tree;
|
struct extent_io_tree *tree = &BTRFS_I(inode)->io_tree;
|
||||||
struct bio *bio;
|
struct bio *bio;
|
||||||
int read_mode;
|
int read_mode = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
|
BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
|
||||||
@@ -2404,9 +2404,7 @@ static int bio_readpage_error(struct bio *failed_bio, u64 phy_offset,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (failed_bio->bi_vcnt > 1)
|
if (failed_bio->bi_vcnt > 1)
|
||||||
read_mode = READ_SYNC | REQ_FAILFAST_DEV;
|
read_mode |= REQ_FAILFAST_DEV;
|
||||||
else
|
|
||||||
read_mode = READ_SYNC;
|
|
||||||
|
|
||||||
phy_offset >>= inode->i_sb->s_blocksize_bits;
|
phy_offset >>= inode->i_sb->s_blocksize_bits;
|
||||||
bio = btrfs_create_repair_bio(inode, failed_bio, failrec, page,
|
bio = btrfs_create_repair_bio(inode, failed_bio, failrec, page,
|
||||||
@@ -3484,7 +3482,7 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
|
|||||||
unsigned long nr_written = 0;
|
unsigned long nr_written = 0;
|
||||||
|
|
||||||
if (wbc->sync_mode == WB_SYNC_ALL)
|
if (wbc->sync_mode == WB_SYNC_ALL)
|
||||||
write_flags = WRITE_SYNC;
|
write_flags = REQ_SYNC;
|
||||||
|
|
||||||
trace___extent_writepage(page, inode, wbc);
|
trace___extent_writepage(page, inode, wbc);
|
||||||
|
|
||||||
@@ -3729,7 +3727,7 @@ static noinline_for_stack int write_one_eb(struct extent_buffer *eb,
|
|||||||
unsigned long i, num_pages;
|
unsigned long i, num_pages;
|
||||||
unsigned long bio_flags = 0;
|
unsigned long bio_flags = 0;
|
||||||
unsigned long start, end;
|
unsigned long start, end;
|
||||||
int write_flags = (epd->sync_io ? WRITE_SYNC : 0) | REQ_META;
|
int write_flags = (epd->sync_io ? REQ_SYNC : 0) | REQ_META;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
clear_bit(EXTENT_BUFFER_WRITE_ERR, &eb->bflags);
|
clear_bit(EXTENT_BUFFER_WRITE_ERR, &eb->bflags);
|
||||||
@@ -4076,7 +4074,7 @@ static void flush_epd_write_bio(struct extent_page_data *epd)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
bio_set_op_attrs(epd->bio, REQ_OP_WRITE,
|
bio_set_op_attrs(epd->bio, REQ_OP_WRITE,
|
||||||
epd->sync_io ? WRITE_SYNC : 0);
|
epd->sync_io ? REQ_SYNC : 0);
|
||||||
|
|
||||||
ret = submit_one_bio(epd->bio, 0, epd->bio_flags);
|
ret = submit_one_bio(epd->bio, 0, epd->bio_flags);
|
||||||
BUG_ON(ret < 0); /* -ENOMEM */
|
BUG_ON(ret < 0); /* -ENOMEM */
|
||||||
|
|||||||
+2
-4
@@ -7917,7 +7917,7 @@ static int dio_read_error(struct inode *inode, struct bio *failed_bio,
|
|||||||
struct io_failure_record *failrec;
|
struct io_failure_record *failrec;
|
||||||
struct bio *bio;
|
struct bio *bio;
|
||||||
int isector;
|
int isector;
|
||||||
int read_mode;
|
int read_mode = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
|
BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
|
||||||
@@ -7936,9 +7936,7 @@ static int dio_read_error(struct inode *inode, struct bio *failed_bio,
|
|||||||
if ((failed_bio->bi_vcnt > 1)
|
if ((failed_bio->bi_vcnt > 1)
|
||||||
|| (failed_bio->bi_io_vec->bv_len
|
|| (failed_bio->bi_io_vec->bv_len
|
||||||
> BTRFS_I(inode)->root->sectorsize))
|
> BTRFS_I(inode)->root->sectorsize))
|
||||||
read_mode = READ_SYNC | REQ_FAILFAST_DEV;
|
read_mode |= REQ_FAILFAST_DEV;
|
||||||
else
|
|
||||||
read_mode = READ_SYNC;
|
|
||||||
|
|
||||||
isector = start - btrfs_io_bio(failed_bio)->logical;
|
isector = start - btrfs_io_bio(failed_bio)->logical;
|
||||||
isector >>= inode->i_sb->s_blocksize_bits;
|
isector >>= inode->i_sb->s_blocksize_bits;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user