Re: [PATCH 2/2] ext2: Add locking for DAX faults

From: Jan Kara
Date: Tue Oct 13 2015 - 04:07:40 EST


On Mon 12-10-15 15:41:35, Ross Zwisler wrote:
> On Mon, Oct 12, 2015 at 10:14:43AM +1100, Dave Chinner wrote:
> > On Fri, Oct 09, 2015 at 04:02:08PM -0600, Ross Zwisler wrote:
> > > Add locking to ensure that DAX faults are isolated from ext2 operations
> > > that modify the data blocks allocation for an inode. This is intended to
> > > be analogous to the work being done in XFS by Dave Chinner:
> > >
> > > http://www.spinics.net/lists/linux-fsdevel/msg90260.html
> > >
> > > Compared with XFS the ext2 case is greatly simplified by the fact that ext2
> > > already allocates and zeros new blocks before they are returned as part of
> > > ext2_get_block(), so DAX doesn't need to worry about getting unmapped or
> > > unwritten buffer heads.
> > >
> > > This means that the only work we need to do in ext2 is to isolate the DAX
> > > faults from inode block allocation changes. I believe this just means that
> > > we need to isolate the DAX faults from truncate operations.
> >
> > Why limit this just to DAX page faults?
>
> Yep, I see that XFS uses the same locking to protect both DAX and non-DAX
> faults. I'll add this protection to non-DAX ext2 faults as well.

Actually, since ext2 driver doesn't support punch hole, there is no need
for additional locking in non-DAX paths. So we can save some space in inode
and locking for that common case. So I'd prefer if we didn't add
unnecessary locking in those paths and just document that for non-DAX
faults using page lock and i_size check is enough. After all the main
usecase of ext2 driver these days is for people with tiny devices...

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/