block: sysfs store function needs to grab queue_lock and use queue_flag_*()

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <git-commits-head@...>
Date: Thursday, May 8, 2008 - 5:59 pm

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf0f97...
Commit:     bf0f97025c7306870b86ccd63669aa278e7ec1c2
Parent:     c0a18111e571138747a98af18b3a2124df56a0d1
Author:     Jens Axboe <jens.axboe@oracle.com>
AuthorDate: Wed May 7 09:09:39 2008 +0200
Committer:  Jens Axboe <jens.axboe@oracle.com>
CommitDate: Wed May 7 09:09:39 2008 +0200

    block: sysfs store function needs to grab queue_lock and use queue_flag_*()
    
    Concurrency isn't a big deal here since we have requests in flight
    at this point, but do the locked variant to set a better example.
    
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
---
 block/blk-sysfs.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index e85c401..304ec73 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -146,11 +146,13 @@ static ssize_t queue_nomerges_store(struct request_queue *q, const char *page,
 	unsigned long nm;
 	ssize_t ret = queue_var_store(&nm, page, count);
 
+	spin_lock_irq(q->queue_lock);
 	if (nm)
-	       set_bit(QUEUE_FLAG_NOMERGES, &q->queue_flags);
+		queue_flag_set(QUEUE_FLAG_NOMERGES, q);
 	else
-	       clear_bit(QUEUE_FLAG_NOMERGES, &q->queue_flags);
+		queue_flag_clear(QUEUE_FLAG_NOMERGES, q);
 
+	spin_unlock_irq(q->queue_lock);
 	return ret;
 }
 
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
block: sysfs store function needs to grab queue_lock and use..., Linux Kernel Mailing List..., (Thu May 8, 5:59 pm)