From: Will Taber <wtaber@us.ibm.com>
To: Ian Kent <raven@themaw.net>
Cc: Jeff Moyer <jmoyer@redhat.com>,
Trond Myklebust <trond.myklebust@fys.uio.no>,
Ram Pai <linuxram@us.ibm.com>,
autofs mailing list <autofs@linux.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [autofs] [RFC PATCH]autofs4: hang and proposed fix
Date: Fri, 02 Dec 2005 11:35:19 -0500 [thread overview]
Message-ID: <439077C7.9050300@us.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.63.0512022301280.2070@donald.themaw.net>
Ian Kent wrote:
>
> Good call. A single example is sufficient to refute my assertion.
>
> But to focus the discussion, the goal is to identify that the calling
> process is the one that holds the semaphore to justify releasing it. For
> lookup it's easy as it's always called with it held. lookup_hash will
> always call revalidate or lookup with the nameidata struct NULL and
> so can be used to identify the semaphore ownership similar to the devfs
> code Will mentioned. I don't think the other tests there are relevant to
> autofs. The patch will require some rework but still the same general
> idea.
>
> Can you think of an example code path where __lookup_hash is called with a
> non null nameidata struct which leads to autofs4 revalidate or lookup.
>
It looks as though __lookup_hash is called from open_namei with the lock
held and a nameidata structure. It also looks as though LOOKUP_OPEN is
set in the nameidata->flags so you should be able to identify this case.
No, that's not because lookup_open does a path_walk to get the parent
without the lock. So it looks as though if you have a nameidata
structure and the flags have LOOKUP_OPEN and LOOKUP_CREATE set but not
LOOKUP_PARENT, then you are holding the i_sem lock. The devfs code
ignores LOOKUP_OPEN. I have to go right now and I am not sure if the
checks are equivalent so I will leave that as an exercise for the reader.
Regards,
Will
Will
next prev parent reply other threads:[~2005-12-02 16:35 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-16 10:17 [RFC PATCH]autofs4: hang and proposed fix Ram Pai
2005-11-16 12:41 ` [autofs] " Ian Kent
2005-11-16 16:50 ` Ram Pai
2005-11-16 22:57 ` Ian Kent
2005-11-17 1:52 ` [autofs] " Ram Pai
2005-11-17 18:50 ` Ian Kent
2005-11-17 19:19 ` William H. Taber
2005-11-17 20:39 ` Ram Pai
2005-11-17 22:31 ` William H. Taber
2005-11-18 14:57 ` Ian Kent
2005-11-18 14:54 ` Ian Kent
2005-11-18 14:44 ` Ian Kent
2005-11-18 15:20 ` William H. Taber
2005-11-18 16:30 ` Ian Kent
2005-11-18 17:12 ` William H. Taber
2005-11-18 18:57 ` Ram Pai
2005-11-18 20:08 ` William H. Taber
2005-11-19 2:52 ` Ian Kent
2005-11-21 16:40 ` William H. Taber
2005-11-22 13:13 ` Ian Kent
2005-11-22 17:48 ` [autofs] " William H. Taber
2005-11-23 14:11 ` Ian Kent
2005-11-23 16:42 ` William H. Taber
2005-11-23 17:52 ` Ian Kent
2005-11-23 17:52 ` [autofs] " Ian Kent
2005-11-23 18:47 ` William H. Taber
2005-11-19 1:40 ` Ian Kent
2005-11-16 15:22 ` Jeff Moyer
2005-11-16 15:22 ` Jeff Moyer
2005-11-16 17:00 ` [autofs] " Ram Pai
2005-11-16 18:25 ` Jeff Moyer
2005-11-16 19:24 ` William H. Taber
2005-11-16 19:51 ` Ram Pai
2005-11-27 10:47 ` Ian Kent
2005-11-28 17:19 ` William H. Taber
2005-11-28 23:12 ` Badari Pulavarty
2005-11-29 14:19 ` Ian Kent
2005-11-29 16:34 ` William H. Taber
2005-11-30 14:02 ` Ian Kent
2005-11-30 16:49 ` Badari Pulavarty
2005-11-30 17:04 ` Trond Myklebust
2005-11-30 21:10 ` William H. Taber
2005-11-29 14:20 ` Ian Kent
2005-11-30 1:16 ` [autofs] " Jeff Moyer
2005-11-30 1:16 ` Jeff Moyer
2005-11-30 1:56 ` Trond Myklebust
2005-11-30 4:15 ` Jeff Moyer
2005-11-30 6:14 ` Trond Myklebust
2005-11-30 15:44 ` Ian Kent
2005-11-30 15:53 ` [autofs] " Trond Myklebust
2005-11-30 16:12 ` Ian Kent
2005-11-30 16:27 ` Ian Kent
2005-11-30 16:45 ` [autofs] " Trond Myklebust
2005-11-30 20:32 ` William H. Taber
2005-11-30 20:53 ` Trond Myklebust
2005-11-30 21:30 ` William H. Taber
2005-11-30 22:32 ` Trond Myklebust
2005-12-01 16:27 ` William H. Taber
2005-12-01 12:09 ` Ian Kent
2005-12-01 16:30 ` William H. Taber
2005-12-02 13:49 ` Ian Kent
2005-12-02 14:07 ` Jeff Moyer
2005-12-02 15:21 ` Ian Kent
2005-12-02 16:35 ` Will Taber [this message]
2005-12-02 17:11 ` [autofs] " Ian Kent
2005-12-02 15:34 ` Will Taber
2005-12-02 17:29 ` Ian Kent
2005-12-02 18:12 ` Trond Myklebust
2005-12-04 12:56 ` Christoph Hellwig
2005-12-04 12:57 ` Christoph Hellwig
2005-12-04 14:58 ` Ian Kent
2005-12-04 17:17 ` [autofs] " Christoph Hellwig
2005-12-05 14:02 ` Ian Kent
2005-12-06 21:20 ` Jeff Moyer
2005-12-06 21:40 ` Christoph Hellwig
2005-12-06 22:37 ` Jeff Moyer
2005-12-07 14:52 ` Will Taber
2005-12-07 15:18 ` Christoph Hellwig
2005-12-07 15:22 ` Brian Long
2005-12-07 15:25 ` Christoph Hellwig
2005-12-07 17:46 ` Will Taber
2005-12-08 14:16 ` Ian Kent
2005-12-09 12:12 ` Christoph Hellwig
2005-12-09 13:33 ` John T. Kohl
2005-12-13 18:39 ` Christoph Hellwig
2005-12-04 14:56 ` Ian Kent
2005-12-02 19:04 ` [autofs] " Will Taber
2005-12-04 9:39 ` Ian Kent
2005-12-02 16:04 ` [autofs] " Jeff Moyer
2005-12-02 17:36 ` Ian Kent
2005-12-02 18:33 ` [autofs] " Will Taber
2005-12-04 9:52 ` Ian Kent
2005-12-04 14:54 ` Ian Kent
2005-12-05 15:40 ` Ian Kent
2005-11-30 14:48 ` [autofs] " Ian Kent
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=439077C7.9050300@us.ibm.com \
--to=wtaber@us.ibm.com \
--cc=autofs@linux.kernel.org \
--cc=jmoyer@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linuxram@us.ibm.com \
--cc=raven@themaw.net \
--cc=trond.myklebust@fys.uio.no \
/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.