From: Ian Kent <raven@themaw.net>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Avi Kivity <avi@redhat.com>,
autofs@linux.kernel.org,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: autofs4 hang in 2.6.37-rc1
Date: Mon, 15 Nov 2010 21:22:21 +0800 [thread overview]
Message-ID: <1289827341.3248.49.camel@localhost> (raw)
In-Reply-To: <201011150954.34289.arnd@arndb.de>
On Mon, 2010-11-15 at 09:54 +0100, Arnd Bergmann wrote:
> On Monday 15 November 2010 02:45:33 Ian Kent wrote:
>
> > You can't hold an exclusive mutex during an autofs expire because the
> > daemon will start by calling the ioctl to check for a dentry to expire
> > then call back to the daemon to perform the umount and wait for a status
> > return (also an ioctl).
>
> Ok, I see. So it's my fault for not realizing that there are long blocking
> ioctls. I was under the assumption that all of these ioctl commands were
> simple non-blocking commands.
This isn't anyone's fault (except maybe mine) because I'm the one most
likely to realize it was a problem and didn't notice it. I've even been
caught by this deadlock (when holding a singular lock) before when I
tried to use .. ummm .. netlink (I think, not even sure what it's called
any more) instead of an ioctl interface for the new autofs control
interface.
>
> > >From memory the expire is the only ioctl that is sensitive to this
> > deadlock.
> >
> > So, either the mutex must be released while waiting for the status
> > return or get rid of the autofs4_ioctl_mutex altogether.
>
> Right. As I said with the original patch, I don't think the mutex
> is really needed, but using it seemed to be the safer alternative.
> It was in the sense that it guaranteed the breakage to be obvious
> rather than silent...
>
> Ian, if you can prove that the lock is not needed, I think we shold
> just remove it.
I don't think I can prove it but I will have a long look at the code.
I don't think it is needed and I expect I'll recommend it be removed.
Oh and btw ... please excuse this off-topic question.
In your recent commit 6e9624b8caec290d28b4c6d9ec75749df6372b87 regarding
BKL removal you implied that blkdev_{get,put} shouldn't need the BLK.
I'm working on a btrfs problem and one of the issues is a deadlock
caused by the out of order acquisition of the BLK and the bdev->bd_mutex
between these two functions. Clearly this isn't a problem from 2.6.36
but do you think it would be safe just to apply the hunks for
blkdev_{get,put} from your commit to fix my problem for older an older
kernel, say 2.6.35?
Ian
next prev parent reply other threads:[~2010-11-15 13:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-14 12:55 autofs4 hang in 2.6.37-rc1 Avi Kivity
2010-11-14 13:51 ` Avi Kivity
2010-11-14 15:15 ` Arnd Bergmann
2010-11-14 15:34 ` Avi Kivity
2010-11-15 1:45 ` Ian Kent
2010-11-15 1:45 ` Ian Kent
2010-11-15 8:54 ` Arnd Bergmann
2010-11-15 13:22 ` Ian Kent [this message]
2010-11-15 13:27 ` Avi Kivity
2010-11-15 13:38 ` Ian Kent
2010-11-15 13:42 ` Ian Kent
2010-11-18 3:54 ` Ian Kent
2010-11-25 13:17 ` Arnd Bergmann
2010-11-15 1:31 ` Ian Kent
2010-11-15 9:02 ` Avi Kivity
2010-11-22 8:42 ` Thomas Fjellstrom
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=1289827341.3248.49.camel@localhost \
--to=raven@themaw.net \
--cc=arnd@arndb.de \
--cc=autofs@linux.kernel.org \
--cc=avi@redhat.com \
--cc=linux-kernel@vger.kernel.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.