提交 8c555367 编写于 作者: C Christoph Hellwig 提交者: Jens Axboe

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: NChristoph Hellwig <hch@lst.de>
Acked-by: NMike Snitzer <snitzer@redhat.com>
Signed-off-by: NTejun Heo <tj@kernel.org>
Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
上级 31725e65
...@@ -39,8 +39,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector, ...@@ -39,8 +39,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
{ {
DECLARE_COMPLETION_ONSTACK(wait); DECLARE_COMPLETION_ONSTACK(wait);
struct request_queue *q = bdev_get_queue(bdev); struct request_queue *q = bdev_get_queue(bdev);
int type = flags & BLKDEV_IFL_BARRIER ? int type = REQ_WRITE | REQ_DISCARD;
DISCARD_BARRIER : DISCARD_NOBARRIER;
unsigned int max_discard_sectors; unsigned int max_discard_sectors;
struct bio *bio; struct bio *bio;
int ret = 0; int ret = 0;
...@@ -65,7 +64,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector, ...@@ -65,7 +64,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
if (flags & BLKDEV_IFL_SECURE) { if (flags & BLKDEV_IFL_SECURE) {
if (!blk_queue_secdiscard(q)) if (!blk_queue_secdiscard(q))
return -EOPNOTSUPP; return -EOPNOTSUPP;
type |= DISCARD_SECURE; type |= REQ_SECURE;
} }
while (nr_sects && !ret) { while (nr_sects && !ret) {
...@@ -162,12 +161,6 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, ...@@ -162,12 +161,6 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
bb.wait = &wait; bb.wait = &wait;
bb.end_io = NULL; 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: submit:
ret = 0; ret = 0;
while (nr_sects != 0) { while (nr_sects != 0) {
...@@ -199,13 +192,6 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, ...@@ -199,13 +192,6 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
issued++; issued++;
submit_bio(WRITE, bio); 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) if (flags & BLKDEV_IFL_WAIT)
/* Wait for bios in-flight */ /* Wait for bios in-flight */
......
...@@ -869,11 +869,9 @@ static inline struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt, ...@@ -869,11 +869,9 @@ static inline struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt,
} }
enum{ enum{
BLKDEV_WAIT, /* wait for completion */ BLKDEV_WAIT, /* wait for completion */
BLKDEV_BARRIER, /* issue request with barrier */
BLKDEV_SECURE, /* secure discard */ BLKDEV_SECURE, /* secure discard */
}; };
#define BLKDEV_IFL_WAIT (1 << BLKDEV_WAIT) #define BLKDEV_IFL_WAIT (1 << BLKDEV_WAIT)
#define BLKDEV_IFL_BARRIER (1 << BLKDEV_BARRIER)
#define BLKDEV_IFL_SECURE (1 << BLKDEV_SECURE) #define BLKDEV_IFL_SECURE (1 << BLKDEV_SECURE)
extern int blkdev_issue_flush(struct block_device *, gfp_t, sector_t *, extern int blkdev_issue_flush(struct block_device *, gfp_t, sector_t *,
unsigned long); unsigned long);
......
...@@ -163,14 +163,6 @@ struct inodes_stat_t { ...@@ -163,14 +163,6 @@ struct inodes_stat_t {
#define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_UNPLUG | \ #define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_UNPLUG | \
REQ_FLUSH | REQ_FUA) 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_IN 1
#define SEL_OUT 2 #define SEL_OUT 2
#define SEL_EX 4 #define SEL_EX 4
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册