Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3bc217ffe6774e7971d6a7ce6350ce806ebab044
Commit:     3bc217ffe6774e7971d6a7ce6350ce806ebab044
Parent:     8bdd3f8a6993fef2f364aca6e1a59559405773a2
Author:     Jens Axboe <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 1 11:34:49 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Fri Feb 1 11:34:49 2008 +0100

    block: kill swap_io_context()
    
    It blindly copies everything in the io_context, including the lock.
    That doesn't work so well for either lock ordering or lockdep.
    
    There seems zero point in swapping io contexts on a request to request
    merge, so the best point of action is to just remove it.
    
    Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/as-iosched.c     |   14 --------------
 block/blk-ioc.c        |    9 ---------
 include/linux/blkdev.h |    1 -
 3 files changed, 0 insertions(+), 24 deletions(-)

diff --git a/block/as-iosched.c b/block/as-iosched.c
index 612d640..8c39467 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1268,22 +1268,8 @@ static void as_merged_requests(struct request_queue *q, 
struct request *req,
         */
        if (!list_empty(&req->queuelist) && !list_empty(&next->queuelist)) {
                if (time_before(rq_fifo_time(next), rq_fifo_time(req))) {
-                       struct io_context *rioc = RQ_IOC(req);
-                       struct io_context *nioc = RQ_IOC(next);
-
                        list_move(&req->queuelist, &next->queuelist);
                        rq_set_fifo_time(req, rq_fifo_time(next));
-                       /*
-                        * Don't copy here but swap, because when anext is
-                        * removed below, it must contain the unused context
-                        */
-                       if (rioc != nioc) {
-                               double_spin_lock(&rioc->lock, &nioc->lock,
-                                                               rioc < nioc);
-                               swap_io_context(&rioc, &nioc);
-                               double_spin_unlock(&rioc->lock, &nioc->lock,
-                                                               rioc < nioc);
-                       }
                }
        }
 
diff --git a/block/blk-ioc.c b/block/blk-ioc.c
index 6d16755..80245dc 100644
--- a/block/blk-ioc.c
+++ b/block/blk-ioc.c
@@ -176,15 +176,6 @@ void copy_io_context(struct io_context **pdst, struct 
io_context **psrc)
 }
 EXPORT_SYMBOL(copy_io_context);
 
-void swap_io_context(struct io_context **ioc1, struct io_context **ioc2)
-{
-       struct io_context *temp;
-       temp = *ioc1;
-       *ioc1 = *ioc2;
-       *ioc2 = temp;
-}
-EXPORT_SYMBOL(swap_io_context);
-
 int __init blk_ioc_init(void)
 {
        iocontext_cachep = kmem_cache_create("blkdev_ioc",
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index cf17039..90392a9 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -39,7 +39,6 @@ void exit_io_context(void);
 struct io_context *get_io_context(gfp_t gfp_flags, int node);
 struct io_context *alloc_io_context(gfp_t gfp_flags, int node);
 void copy_io_context(struct io_context **pdst, struct io_context **psrc);
-void swap_io_context(struct io_context **ioc1, struct io_context **ioc2);
 
 struct request;
 typedef void (rq_end_io_fn)(struct request *, int);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to