From d44e269e1d0cbf7f489da136ceb899efd3544b43 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 30 Jan 2008 19:54:24 +1100 Subject: [PATCH] --- yaml --- r: 79683 b: refs/heads/master c: 85004cc367abc000aa36c0d0e270ab609a68b0cb h: refs/heads/master i: 79681: 6298c85858ee8081d1e74b2c0b12b2cb458f6f33 79679: 8cb61a47267e80ef335bde3698d08d2c057fa17c v: v3 --- [refs] | 2 +- trunk/block/as-iosched.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index f1358cfd90a9..f4ba77ba4ec2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3fbd67ad61f6d5a09ea717b56c50bc5c3d8042a8 +refs/heads/master: 85004cc367abc000aa36c0d0e270ab609a68b0cb diff --git a/trunk/block/as-iosched.c b/trunk/block/as-iosched.c index b201d16a7102..96036846a001 100644 --- a/trunk/block/as-iosched.c +++ b/trunk/block/as-iosched.c @@ -1275,9 +1275,13 @@ static void as_merged_requests(struct request_queue *q, struct request *req, * Don't copy here but swap, because when anext is * removed below, it must contain the unused context */ - double_spin_lock(&rioc->lock, &nioc->lock, rioc < nioc); - swap_io_context(&rioc, &nioc); - double_spin_unlock(&rioc->lock, &nioc->lock, rioc < nioc); + 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); + } } }