mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ian Kent <raven@themaw.net>
To: Sage Weil <sage@newdream.net>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Al Viro <viro@ZenIV.linux.org.uk>,
	Christoph Hellwig <hch@infradead.org>,
	Andreas Dilger <adilger@sun.com>,
	Yehuda Saheh <yehuda@newdream.net>,
	Jim Garlick <garlick@llnl.gov>
Subject: [RFC PATCH 00/11] autofs4 - update autofs4 to deal with VFS locking change
Date: Thu, 24 Sep 2009 16:21:18 +0800	[thread overview]
Message-ID: <20090924082036.22151.85151.stgit@zeus.themaw.net> (raw)

A change to the VFS path walk locking is needed to resolve an issue
identified by Sage Weil. This locking change requires significant
changes to the autofs4 module to allow it to callback to userspace
without introducing a deadlock.

To cope with the change the autofs4 module needs to redirect mount
requests from ->d_revalidate() to ->lookup() if the directory
inode mutex is held when a callback needs to be done. Note that we
cannot redirect these requests when the mutex is not held because,
to function correctly, the mutex must be held over both revalidate
and lookup.

Of the patches in the series most are cleanups and refactoring done
to keep the real change in "autofs4 - always use lookup for lookup"
as clean as possible. Unfortuneately, there is still quite a bit
left in it.

Also, I need confirmation that the patch that changes the VFS path
walk locking is in fact correct, or at least like for like to what
will be submitted. I had some difficulty with the original patches
that were paosted. The patch in question below is "vfs: make
real_lookup do dentry revalidation with i_mutex held".

I've done quite a bit of fairly heavy stress testing of the patch
series and they (finally) hold up to it. Although I have also
managed to uncover a locking bug in the user space daemon as a
result, ;)

---

Ian Kent (10):
      autofs4 - always use lookup for lookup
      autofs4 - rename dentry to expiring in autofs4_lookup_expiring()
      autofs4 - rename dentry to active in autofs4_lookup_active()
      autofs4 - eliminate d_unhashed in path walk checks
      autofs4 - cleanup active and expire lookup
      autofs4 - renamer unhashed to active in autofs4_lookup()
      autofs4 - use autofs_info for pending flag
      autofs4 - use macro for need mount check
      autofs4 - use macros for expiring list
      autofs4 - use macros for active list handling

Sage Weil (1):
      Subject: [PATCH] vfs: make real_lookup do dentry revalidation with i_mutex held


 fs/autofs4/autofs_i.h |   38 +++
 fs/autofs4/expire.c   |    8 -
 fs/autofs4/inode.c    |    2 
 fs/autofs4/root.c     |  616 ++++++++++++++++++++++++++++++++-----------------
 fs/namei.c            |   58 ++---
 5 files changed, 480 insertions(+), 242 deletions(-)

-- 
Ian

             reply	other threads:[~2009-09-24  8:30 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-24  8:21 Ian Kent [this message]
2009-09-24  8:21 ` [RFC PATCH 01/11] Subject: [PATCH] vfs: make real_lookup do dentry revalidation with i_mutex held Ian Kent
2009-09-24  8:21 ` [RFC PATCH 02/11] autofs4 - use macros for active list handling Ian Kent
2009-09-24  8:21 ` [RFC PATCH 03/11] autofs4 - use macros for expiring list Ian Kent
2009-09-24  8:21 ` [RFC PATCH 04/11] autofs4 - use macro for need mount check Ian Kent
2009-09-24  8:21 ` [RFC PATCH 05/11] autofs4 - use autofs_info for pending flag Ian Kent
2009-09-24  8:21 ` [RFC PATCH 06/11] autofs4 - renamer unhashed to active in autofs4_lookup() Ian Kent
2009-09-24  8:22 ` [RFC PATCH 07/11] autofs4 - cleanup active and expire lookup Ian Kent
2009-09-24  8:22 ` [RFC PATCH 08/11] autofs4 - eliminate d_unhashed in path walk checks Ian Kent
2009-09-24  8:22 ` [RFC PATCH 09/11] autofs4 - rename dentry to active in autofs4_lookup_active() Ian Kent
2009-09-24  8:22 ` [RFC PATCH 10/11] autofs4 - rename dentry to expiring in autofs4_lookup_expiring() Ian Kent
2009-09-24  8:22 ` [RFC PATCH 11/11] autofs4 - always use lookup for lookup Ian Kent
2009-09-24  9:19 ` [RFC PATCH 00/11] autofs4 - update autofs4 to deal with VFS locking change Ian Kent
2009-09-24 16:10 ` Sage Weil
2009-09-28  7:41   ` Ian Kent
2009-09-28  7:53   ` 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=20090924082036.22151.85151.stgit@zeus.themaw.net \
    --to=raven@themaw.net \
    --cc=adilger@sun.com \
    --cc=garlick@llnl.gov \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sage@newdream.net \
    --cc=viro@ZenIV.linux.org.uk \
    --cc=yehuda@newdream.net \
    /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

Powered by JetHome