Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4382e33a authored by Bart Van Assche's avatar Bart Van Assche Committed by Jens Axboe
Browse files

block, dm-crypt, btrfs: Introduce bio_flags()



Introduce the bio_flags() macro. Ensure that the second argument of
bio_set_op_attrs() only contains flags and no operation. This patch
does not change any functionality.

Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Cc: Mike Christie <mchristi@redhat.com>
Cc: Chris Mason <clm@fb.com> (maintainer:BTRFS FILE SYSTEM)
Cc: Josef Bacik <jbacik@fb.com> (maintainer:BTRFS FILE SYSTEM)
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Damien Le Moal <damien.lemoal@hgst.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 637ca77b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1136,7 +1136,7 @@ static void clone_init(struct dm_crypt_io *io, struct bio *clone)
	clone->bi_private = io;
	clone->bi_end_io  = crypt_endio;
	clone->bi_bdev    = cc->dev->bdev;
	bio_set_op_attrs(clone, bio_op(io->base_bio), io->base_bio->bi_opf);
	bio_set_op_attrs(clone, bio_op(io->base_bio), bio_flags(io->base_bio));
}

static int kcryptd_io_read(struct dm_crypt_io *io, gfp_t gfp)
+3 −2
Original line number Diff line number Diff line
@@ -8412,7 +8412,7 @@ static int btrfs_submit_direct_hook(struct btrfs_dio_private *dip,
	if (!bio)
		return -ENOMEM;

	bio_set_op_attrs(bio, bio_op(orig_bio), orig_bio->bi_opf);
	bio_set_op_attrs(bio, bio_op(orig_bio), bio_flags(orig_bio));
	bio->bi_private = dip;
	bio->bi_end_io = btrfs_end_dio_bio;
	btrfs_io_bio(bio)->logical = file_offset;
@@ -8450,7 +8450,8 @@ static int btrfs_submit_direct_hook(struct btrfs_dio_private *dip,
						  start_sector, GFP_NOFS);
			if (!bio)
				goto out_err;
			bio_set_op_attrs(bio, bio_op(orig_bio), orig_bio->bi_opf);
			bio_set_op_attrs(bio, bio_op(orig_bio),
					 bio_flags(orig_bio));
			bio->bi_private = dip;
			bio->bi_end_io = btrfs_end_dio_bio;
			btrfs_io_bio(bio)->logical = file_offset;
+2 −1
Original line number Diff line number Diff line
@@ -90,11 +90,12 @@ struct bio {
};

#define BIO_OP_SHIFT	(8 * FIELD_SIZEOF(struct bio, bi_opf) - REQ_OP_BITS)
#define bio_flags(bio)	((bio)->bi_opf & ((1 << BIO_OP_SHIFT) - 1))
#define bio_op(bio)	((bio)->bi_opf >> BIO_OP_SHIFT)

#define bio_set_op_attrs(bio, op, op_flags) do {		\
	WARN_ON(op >= (1 << REQ_OP_BITS));			\
	(bio)->bi_opf &= ((1 << BIO_OP_SHIFT) - 1);		\
	(bio)->bi_opf = bio_flags(bio);				\
	(bio)->bi_opf |= ((unsigned int) (op) << BIO_OP_SHIFT);	\
	(bio)->bi_opf |= op_flags;				\
} while (0)