]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.drivers/block-abort-queue
Revert "Move xen patchset to new version's subdir."
[ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / block-abort-queue
diff --git a/src/patches/suse-2.6.27.31/patches.drivers/block-abort-queue b/src/patches/suse-2.6.27.31/patches.drivers/block-abort-queue
deleted file mode 100644 (file)
index 2fbd622..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-Subject: block: Add interface to abort queued requests
-From: Mike Anderson <andmike@linux.vnet.ibm.com>
-Date: Thu Oct 9 08:56:13 2008 +0200:
-Git: 11914a53d2ec2974a565311af327b8983d8c820d
-References: FATE#304151,bnc#417544
-
-Adapted for SLES11, based on the original commit.
-
-Signed-off-by: Mike Anderson <andmike@linux.vnet.ibm.com>
-Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-Signed-off-by: Hannes Reinecke <hare@suse.de>
-
----
- block/blk-timeout.c          |   22 ++++++++++++++++++++++
- block/elevator.c             |   13 +++++++++++++
- include/linux/blkdev.h       |    1 +
- include/linux/blktrace_api.h |    2 ++
- include/linux/elevator.h     |    1 +
- 5 files changed, 39 insertions(+)
-
---- a/block/blk-timeout.c
-+++ b/block/blk-timeout.c
-@@ -153,3 +153,25 @@ void blk_add_timer(struct request *req)
-           time_before(expiry, q->timeout.expires))
-               mod_timer(&q->timeout, expiry);
- }
-+
-+/**
-+ * blk_abort_queue -- Abort all request on given queue
-+ * @queue:    pointer to queue
-+ *
-+ */
-+void blk_abort_queue(struct request_queue *q)
-+{
-+      unsigned long flags;
-+      struct request *rq, *tmp;
-+
-+      spin_lock_irqsave(q->queue_lock, flags);
-+
-+      elv_abort_queue(q);
-+
-+      list_for_each_entry_safe(rq, tmp, &q->timeout_list, timeout_list)
-+              blk_abort_request(rq);
-+
-+      spin_unlock_irqrestore(q->queue_lock, flags);
-+
-+}
-+EXPORT_SYMBOL_GPL(blk_abort_queue);
---- a/block/elevator.c
-+++ b/block/elevator.c
-@@ -914,6 +914,19 @@ int elv_may_queue(struct request_queue *
-       return ELV_MQUEUE_MAY;
- }
-+void elv_abort_queue(struct request_queue *q)
-+{
-+      struct request *rq;
-+
-+      while (!list_empty(&q->queue_head)) {
-+              rq = list_entry_rq(q->queue_head.next);
-+              rq->cmd_flags |= REQ_QUIET;
-+              blk_add_trace_rq(q, rq, BLK_TA_ABORT);
-+              end_queued_request(rq, 0);
-+      }
-+}
-+EXPORT_SYMBOL(elv_abort_queue);
-+
- void elv_completed_request(struct request_queue *q, struct request *rq)
- {
-       elevator_t *e = q->elevator;
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -780,6 +780,7 @@ extern int blk_end_request_callback(stru
- extern void blk_complete_request(struct request *);
- extern void __blk_complete_request(struct request *);
- extern void blk_abort_request(struct request *);
-+extern void blk_abort_queue(struct request_queue *);
- /*
-  * blk_end_request() takes bytes instead of sectors as a complete size.
---- a/include/linux/blktrace_api.h
-+++ b/include/linux/blktrace_api.h
-@@ -51,6 +51,7 @@ enum blktrace_act {
-       __BLK_TA_SPLIT,                 /* bio was split */
-       __BLK_TA_BOUNCE,                /* bio was bounced */
-       __BLK_TA_REMAP,                 /* bio was remapped */
-+      __BLK_TA_ABORT,                 /* request aborted */
-       __BLK_TA_DRV_DATA,              /* driver-specific binary data */
- };
-@@ -82,6 +83,7 @@ enum blktrace_notify {
- #define BLK_TA_SPLIT          (__BLK_TA_SPLIT)
- #define BLK_TA_BOUNCE         (__BLK_TA_BOUNCE)
- #define BLK_TA_REMAP          (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
-+#define BLK_TA_ABORT          (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
- #define BLK_TA_DRV_DATA       (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
- #define BLK_TN_PROCESS                (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
---- a/include/linux/elevator.h
-+++ b/include/linux/elevator.h
-@@ -112,6 +112,7 @@ extern struct request *elv_latter_reques
- extern int elv_register_queue(struct request_queue *q);
- extern void elv_unregister_queue(struct request_queue *q);
- extern int elv_may_queue(struct request_queue *, int);
-+extern void elv_abort_queue(struct request_queue *);
- extern void elv_completed_request(struct request_queue *, struct request *);
- extern int elv_set_request(struct request_queue *, struct request *, gfp_t);
- extern void elv_put_request(struct request_queue *, struct request *);