From: Jens Axboe <axboe@kernel.dk>
To: Tejun Heo <tj@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Sitsofe Wheeler <sitsofe@yahoo.com>,
Borislav Petkov <bp@alien8.de>, Meelis Roos <mroos@linux.ee>,
Andrew Morton <akpm@linux-foundation.org>,
Kay Sievers <kay.sievers@vrfy.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH UPDATED 2/3 v2.6.39-rc7] block: make disk_block_events() properly wait for work cancellation
Date: Tue, 17 May 2011 21:34:58 +0200 [thread overview]
Message-ID: <4DD2CDE2.60604@kernel.dk> (raw)
In-Reply-To: <20110517154748.GS20624@htj.dyndns.org>
On 2011-05-17 17:47, Tejun Heo wrote:
> disk_block_events() should guarantee that the event work is not in
> flight on return and once blocked it shouldn't issue further
> cancellations.
>
> Because there was no synchronization between the first blocker doing
> cancel_delayed_work_sync() and the following blockers, the following
> blockers could finish before cancellation was complete, which broke
> both guarantees - event work could be in flight and cancellation could
> happen after return.
>
> This bug triggered WARN_ON_ONCE() in disk_clear_events() reported in
> bug#34662.
>
> https://bugzilla.kernel.org/show_bug.cgi?id=34662
>
> Fix it by adding an outer mutex which protects both block count
> manipulation and work cancellation.
>
> -v2: Use outer mutex instead of bit waitqueue per Linus.
Thanks, much cleaner indeed. I've rebased for-linus. BTW, this is patch
3/3, not 2/3. Had me confused for a while, the numbering on the initial
series was off as well.
I'll let this simmer until tomorrow, then send out the pull request.
--
Jens Axboe
next prev parent reply other threads:[~2011-05-17 19:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-17 10:27 [PATCH RESEND 1/3 v2.6.39-rc7] block: don't use non-syncing event blocking in disk_check_events() Tejun Heo
2011-05-17 10:28 ` [PATCH RESEND 2/3 v2.6.39-rc7] block: remove non-syncing __disk_block_events() and fold it into disk_block_events() Tejun Heo
2011-05-17 10:28 ` [PATCH RESEND 2/3 v2.6.39-rc7] block: make disk_block_events() properly wait for work cancellation Tejun Heo
2011-05-17 14:46 ` Linus Torvalds
2011-05-17 15:11 ` Tejun Heo
2011-05-17 15:15 ` Linus Torvalds
2011-05-17 15:27 ` Tejun Heo
2011-05-17 22:40 ` Linus Torvalds
2011-05-18 5:07 ` Tejun Heo
2011-05-18 9:46 ` Linus Torvalds
2011-05-18 10:04 ` Tejun Heo
2011-05-18 11:07 ` Tejun Heo
2011-05-18 10:26 ` Jens Axboe
2011-05-17 15:47 ` [PATCH UPDATED " Tejun Heo
2011-05-17 19:34 ` Jens Axboe [this message]
2011-05-17 20:22 ` Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DD2CDE2.60604@kernel.dk \
--to=axboe@kernel.dk \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mroos@linux.ee \
--cc=sitsofe@yahoo.com \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.