From: viro@parcelfarce.linux.theplanet.co.uk
To: Maurice van der Stee <stee@planet.nl>
Cc: linux-kernel@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>
Subject: Re: 2.6.4-rc1 oops on HPFS filesystem file rename
Date: Sun, 29 Feb 2004 13:58:49 +0000 [thread overview]
Message-ID: <20040229135849.GI16357@parcelfarce.linux.theplanet.co.uk> (raw)
In-Reply-To: <20040229131425.GH16357@parcelfarce.linux.theplanet.co.uk>
On Sun, Feb 29, 2004 at 01:14:25PM +0000, viro@parcelfarce.linux.theplanet.co.uk wrote:
> Unless there are complaints and bug reports, it will go to Linus in a couple
> of days.
Oh, lovely - there's a deadlock (both in new and old code) too. The trouble
being, we can get ->write_inode() *triggered* in the middle of btree
rebalancing. Which leads to deadlock, since we really need the exclusion
there (and would be very unhappy if search for directory entry would happen
in the middle of that fun).
Fix is to switch the allocations done in that area to GFP_NOFS. However,
there's an extra PITA caused by inode allocations - we'll need to take
the inode allocation in hpfs_create() et.al. outside of lock on parent.
Potential inode allocation in ->write_inode() (done if parent inode is
not in core - that can happen, unfortunately) is not a problem if we
replace the "parent can change" semaphore to rwsem and hold it for
read here. There's no risk of down_read()/somebody does down_write()/the
first task gets recursive down_read() deadlock in that case, since all
down_write() can happen only if parent inode is already in-core.
Sigh... Gotta love that code - deadlocks had been there since _way_ back...
Additional patch later today...
next prev parent reply other threads:[~2004-02-29 13:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-28 17:12 Maurice van der Stee
2004-02-28 19:06 ` viro
2004-02-29 11:31 ` Maurice van der Stee
2004-02-29 13:14 ` viro
2004-02-29 13:58 ` viro [this message]
2004-02-29 14:41 ` viro
-- strict thread matches above, loose matches on Subject: below --
2004-02-28 11:04 Maurice van der Stee
2004-02-28 11:42 ` viro
2004-02-28 17:05 ` Diego Calleja
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=20040229135849.GI16357@parcelfarce.linux.theplanet.co.uk \
--to=viro@parcelfarce.linux.theplanet.co.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=stee@planet.nl \
--cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®