Re: xfs: commit 6552321831dc "xfs: remove i_iolock and use i_rwsem in the VFS inode instead" change causes hang

From: Mimi Zohar
Date: Sun Jan 08 2017 - 11:38:53 EST


On Sun, 2017-01-08 at 16:37 +0100, Christoph Hellwig wrote:
> On Sun, Jan 08, 2017 at 10:31:22AM -0500, Mimi Zohar wrote:
> > > Depends on the file system. In addition to XFS at least the NFS
> > > also uses i_rwsem by default. Also all file systems supporting
> > > a DAX I/O path.
> >
> > We're only interested in the integrity of the local file system.
>
> And I'm only interested in supporting sane use cases that don't include
> IMA.

Nothing new, you haven't changed your position all these years. I'm not
sure whether your problem is with the concepts that the integrity
subsystem provides (eg. extending secure and trusted boot to the OS,
auditing file hashes for use in forensics) or just with the
implementation.

Others are interested in these features and are using the integrity
subsystem (eg. David Safford LSS 2016 "Design and Implementation of a
Security Architecture for Critical Infrastructure"
(https://www.youtube.com/watch?v=LDQxzz42Bs0), Eric Richter's LSS 2016
talk "(Ab)using Linux as a Trusted Bootloader", and many, many others).

> But even if you only care about local file systems IMA is simply
> fundamentally broken. Read/Write zerialization in Linux has always been
> in the fs (or generic library called by it) and not by the caller.
>
> > IMA needs a mechanism for quickly reading a file to calculate the file
> > hash and validate (or set) the file signature/hash stored as an xattr,
> > prior to any other process getting access to the file.
>
> And that's simply not doable in Linux from a layer outside the file system.
> And really questionable even from inside the fs. We should simply drop
> IMA from the tree in the current state because it's obviously broken.

True, it is now broken on XFS, but please don't generalize this XFS
regression to all file systems.

> If you can convince fs maintainers to do the right calls from the file
> systems itself for given file systems (and only support IMA for those)
> we can add it back just for those.

We definitely need VFS help in resolving this regression. As a last
resort, we could always update the default IMA builtin policy to exclude
XFS.

Mimi