Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

block: remov blk_queue_invalidate_tags

This function is entirely unused, so remove it and the tag_queue_busy
member of struct request_queue.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
be7f99c5 95c7c09f

+1 -38
+1 -14
Documentation/block/biodoc.txt
··· 752 operations before calling end_that_request_last()! For an example of a user 753 of these helpers, see the IDE tagged command queueing support. 754 755 - Certain hardware conditions may dictate a need to invalidate the block tag 756 - queue. For instance, on IDE any tagged request error needs to clear both 757 - the hardware and software block queue and enable the driver to sanely restart 758 - all the outstanding requests. There's a third helper to do that: 759 - 760 - blk_queue_invalidate_tags(struct request_queue *q) 761 - 762 - Clear the internal block tag queue and re-add all the pending requests 763 - to the request queue. The driver will receive them again on the 764 - next request_fn run, just like it did the first time it encountered 765 - them. 766 - 767 3.2.5.2 Tag info 768 769 Some block functions exist to query current tag status or to go from a ··· 793 Most of the above is simple and straight forward, however busy_list may need 794 a bit of explaining. Normally we don't care too much about request ordering, 795 but in the event of any barrier requests in the tag queue we need to ensure 796 - that requests are restarted in the order they were queue. This may happen 797 - if the driver needs to use blk_queue_invalidate_tags(). 798 799 3.3 I/O Submission 800
··· 752 operations before calling end_that_request_last()! For an example of a user 753 of these helpers, see the IDE tagged command queueing support. 754 755 3.2.5.2 Tag info 756 757 Some block functions exist to query current tag status or to go from a ··· 805 Most of the above is simple and straight forward, however busy_list may need 806 a bit of explaining. Normally we don't care too much about request ordering, 807 but in the event of any barrier requests in the tag queue we need to ensure 808 + that requests are restarted in the order they were queue. 809 810 3.3 I/O Submission 811
-22
block/blk-tag.c
··· 188 */ 189 q->queue_tags = tags; 190 queue_flag_set_unlocked(QUEUE_FLAG_QUEUED, q); 191 - INIT_LIST_HEAD(&q->tag_busy_list); 192 return 0; 193 } 194 EXPORT_SYMBOL(blk_queue_init_tags); ··· 373 rq->tag = tag; 374 bqt->tag_index[tag] = rq; 375 blk_start_request(rq); 376 - list_add(&rq->queuelist, &q->tag_busy_list); 377 return 0; 378 } 379 EXPORT_SYMBOL(blk_queue_start_tag); 380 - 381 - /** 382 - * blk_queue_invalidate_tags - invalidate all pending tags 383 - * @q: the request queue for the device 384 - * 385 - * Description: 386 - * Hardware conditions may dictate a need to stop all pending requests. 387 - * In this case, we will safely clear the block side of the tag queue and 388 - * readd all requests to the request queue in the right order. 389 - **/ 390 - void blk_queue_invalidate_tags(struct request_queue *q) 391 - { 392 - struct list_head *tmp, *n; 393 - 394 - lockdep_assert_held(q->queue_lock); 395 - 396 - list_for_each_safe(tmp, n, &q->tag_busy_list) 397 - blk_requeue_request(q, list_entry_rq(tmp)); 398 - } 399 - EXPORT_SYMBOL(blk_queue_invalidate_tags);
··· 188 */ 189 q->queue_tags = tags; 190 queue_flag_set_unlocked(QUEUE_FLAG_QUEUED, q); 191 return 0; 192 } 193 EXPORT_SYMBOL(blk_queue_init_tags); ··· 374 rq->tag = tag; 375 bqt->tag_index[tag] = rq; 376 blk_start_request(rq); 377 return 0; 378 } 379 EXPORT_SYMBOL(blk_queue_start_tag);
-2
include/linux/blkdev.h
··· 562 unsigned int dma_alignment; 563 564 struct blk_queue_tag *queue_tags; 565 - struct list_head tag_busy_list; 566 567 unsigned int nr_sorted; 568 unsigned int in_flight[2]; ··· 1374 extern int blk_queue_init_tags(struct request_queue *, int, struct blk_queue_tag *, int); 1375 extern void blk_queue_free_tags(struct request_queue *); 1376 extern int blk_queue_resize_tags(struct request_queue *, int); 1377 - extern void blk_queue_invalidate_tags(struct request_queue *); 1378 extern struct blk_queue_tag *blk_init_tags(int, int); 1379 extern void blk_free_tags(struct blk_queue_tag *); 1380
··· 562 unsigned int dma_alignment; 563 564 struct blk_queue_tag *queue_tags; 565 566 unsigned int nr_sorted; 567 unsigned int in_flight[2]; ··· 1375 extern int blk_queue_init_tags(struct request_queue *, int, struct blk_queue_tag *, int); 1376 extern void blk_queue_free_tags(struct request_queue *); 1377 extern int blk_queue_resize_tags(struct request_queue *, int); 1378 extern struct blk_queue_tag *blk_init_tags(int, int); 1379 extern void blk_free_tags(struct blk_queue_tag *); 1380