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

Commit 8c555367 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: remove the BLKDEV_IFL_BARRIER flag



Remove support for barriers on discards, which is unused now.  Also
remove the DISCARD_NOBARRIER I/O type in favour of just setting the
rw flags up locally in blkdev_issue_discard.

tj: Also remove DISCARD_SECURE and use REQ_SECURE directly.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarMike Snitzer <snitzer@redhat.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 31725e65
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -39,8 +39,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
{
	DECLARE_COMPLETION_ONSTACK(wait);
	struct request_queue *q = bdev_get_queue(bdev);
	int type = flags & BLKDEV_IFL_BARRIER ?
		DISCARD_BARRIER : DISCARD_NOBARRIER;
	int type = REQ_WRITE | REQ_DISCARD;
	unsigned int max_discard_sectors;
	struct bio *bio;
	int ret = 0;
@@ -65,7 +64,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
	if (flags & BLKDEV_IFL_SECURE) {
		if (!blk_queue_secdiscard(q))
			return -EOPNOTSUPP;
		type |= DISCARD_SECURE;
		type |= REQ_SECURE;
	}

	while (nr_sects && !ret) {
@@ -162,12 +161,6 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
	bb.wait = &wait;
	bb.end_io = NULL;

	if (flags & BLKDEV_IFL_BARRIER) {
		/* issue async barrier before the data */
		ret = blkdev_issue_flush(bdev, gfp_mask, NULL, 0);
		if (ret)
			return ret;
	}
submit:
	ret = 0;
	while (nr_sects != 0) {
@@ -199,13 +192,6 @@ submit:
		issued++;
		submit_bio(WRITE, bio);
	}
	/*
	 * When all data bios are in flight. Send final barrier if requeted.
	 */
	if (nr_sects == 0 && flags & BLKDEV_IFL_BARRIER)
		ret = blkdev_issue_flush(bdev, gfp_mask, NULL,
					flags & BLKDEV_IFL_WAIT);


	if (flags & BLKDEV_IFL_WAIT)
		/* Wait for bios in-flight */
+0 −2
Original line number Diff line number Diff line
@@ -869,11 +869,9 @@ static inline struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt,
}
enum{
	BLKDEV_WAIT,	/* wait for completion */
	BLKDEV_BARRIER,	/* issue request with barrier */
	BLKDEV_SECURE,	/* secure discard */
};
#define BLKDEV_IFL_WAIT		(1 << BLKDEV_WAIT)
#define BLKDEV_IFL_BARRIER	(1 << BLKDEV_BARRIER)
#define BLKDEV_IFL_SECURE	(1 << BLKDEV_SECURE)
extern int blkdev_issue_flush(struct block_device *, gfp_t, sector_t *,
			unsigned long);
+0 −8
Original line number Diff line number Diff line
@@ -163,14 +163,6 @@ struct inodes_stat_t {
#define WRITE_FLUSH_FUA		(WRITE | REQ_SYNC | REQ_NOIDLE | REQ_UNPLUG | \
				 REQ_FLUSH | REQ_FUA)

/*
 * These aren't really reads or writes, they pass down information about
 * parts of device that are now unused by the file system.
 */
#define DISCARD_NOBARRIER	(WRITE | REQ_DISCARD)
#define DISCARD_BARRIER		(WRITE | REQ_DISCARD | REQ_HARDBARRIER)
#define DISCARD_SECURE		(DISCARD_NOBARRIER | REQ_SECURE)

#define SEL_IN		1
#define SEL_OUT		2
#define SEL_EX		4