From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Christoph Hellwig <hch@lst.de>, Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: linux-xfs@vger.kernel.org, Dave Chinner <david@fromorbit.com>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Al Viro <viro@ZenIV.linux.org.uk>
Subject: Re: xfs: commit 6552321831dc "xfs: remove i_iolock and use i_rwsem in the VFS inode instead" change causes hang
Date: Sun, 08 Jan 2017 09:59:25 -0800 [thread overview]
Message-ID: <1483898365.2542.13.camel@HansenPartnership.com> (raw)
In-Reply-To: <20170108145200.GA29570@lst.de>
On Sun, 2017-01-08 at 15:52 +0100, Christoph Hellwig wrote:
> On Sun, Jan 08, 2017 at 09:48:44AM -0500, Mimi Zohar wrote:
> > IMA takes the i_rwsem (fomerly i_mutex) before reading the file to
> > synchronize calculating the file hash and validating the file's
> > hash/signature stored as security.ima xattr
>
> Well, it shouldn't do that. In the I/O path i_rwsem is up to the
> fs to use. Various other file systems also take it internally for
> reads, although mostly only for direct I/O.
Hey, that's not really true: the inode lock (i_rwsem) is used in all
sorts of generic places, including generic_file_write_iter(). That's,
I think, why ima is using it to try to prevent writes while it measures
the file.
> So the answer here is that ima needs to stop playing with i_rwsem.
Isn't there a happy medium? most sensible filesystems will allow shared
reading (unless they want to tank performance) so we can rely on the
fact that even if a fs does use i_rwsem internally on the read path, it
will have to be shared. So simply replacing the inode_lock() in ima
with inode_lock_shared() should do what ima wants and not interact
badly even if the underlying FS uses i_rwsem. If there's ever a FS
that takes it exclusively in the read path, ima can simply blacklist
it.
James
next prev parent reply other threads:[~2017-01-08 17:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-08 14:48 xfs: commit 6552321831dc "xfs: remove i_iolock and use i_rwsem in the VFS inode instead" change causes hang Mimi Zohar
2017-01-08 14:52 ` Christoph Hellwig
2017-01-08 15:03 ` Mimi Zohar
2017-01-08 15:14 ` Christoph Hellwig
2017-01-08 15:31 ` Mimi Zohar
2017-01-08 15:37 ` Christoph Hellwig
2017-01-08 16:38 ` Mimi Zohar
2017-01-08 16:43 ` Christoph Hellwig
2017-01-08 17:59 ` James Bottomley [this message]
2017-01-08 18:18 ` Christoph Hellwig
2017-01-08 18:57 ` James Bottomley
2017-01-08 19:09 ` Christoph Hellwig
2017-01-08 19:26 ` Al Viro
2017-01-08 20:10 ` Mimi Zohar
2017-01-08 19:39 ` Mimi Zohar
2017-01-09 19:44 ` Jeff Layton
2017-01-10 2:54 ` Mimi Zohar
2017-01-10 16:22 ` Jeff Layton
2017-01-08 19:16 ` Mimi Zohar
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=1483898365.2542.13.camel@HansenPartnership.com \
--to=james.bottomley@hansenpartnership.com \
--cc=david@fromorbit.com \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=viro@ZenIV.linux.org.uk \
--cc=zohar@linux.vnet.ibm.com \
/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.