[linux-lvm] lvm deadlock with 2.4.x kernel?

Chris Mason mason at suse.com
Wed May 16 13:20:51 UTC 2001


On Wednesday, May 16, 2001 09:39:29 AM +0100 Joe Thornber
<thornber at btconnect.com> wrote:

> On Tue, May 15, 2001 at 09:17:06PM -0400, Chris Mason wrote:
>> You're right though, pv_flush certainly doesn't look like it could cause
>> any deadlocks.
> 
> I must admit I'm struggling to understand why PV_FLUSH even exists.
> It does *exactly* the same thing as a BLKFLSBUF ioctl to the pv device
> itself.  As such I agree that it's unlikely to be the culprit.

I think there are actually two problems.  Calling invalidate_buffers on
part of an active ext3 FS should hose it (unless ext3 doesn't allow b_count
== 0 on buffers that are clean but still need flushing). 

Adding the BKL on 2.2.x shouldn't do anything, since sys_ioctl grabs it.
Unless the LVM code drops the BKL somewhere, it should be safe.  So, at the
very least ext3 people need Jay's first patch.

The 2.4.x deadlock with reiserfs should be something different.  Reiserfs
should have b_count > 0 on any buffer it cares about.  If PV_FLUSH is never
called with any other locks held, we're probably best off going in with kdb.

-chris




More information about the linux-lvm mailing list