Re: [PATCH 4/4] xfs: XFS_DIFLAG2_DAX limited by PAGE_SIZE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2/15/16 6:39 PM, Dave Chinner wrote:
> On Mon, Feb 15, 2016 at 06:12:04PM -0600, Eric Sandeen wrote:

...

>> So which is it, at least PAGE_SIZE or == PAGE_SIZE?
> 
> Linux does not support filesystems where the block size is larger
> than the page size, so the supported set of "block size at least as
> large as PAGE_SIZE" is only block size == PAGE_SIZE.

Um, ok.  Comment is still confusing.  ;)

>>>  	/* If the DAX state is not changing, we have nothing to do here. */
>>>  	if ((fa->fsx_xflags & FS_XFLAG_DAX) && IS_DAX(inode))
>>> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
>>> index 9c984a0..fb7dc61 100644
>>> --- a/fs/xfs/xfs_iops.c
>>> +++ b/fs/xfs/xfs_iops.c
>>> @@ -1186,6 +1186,7 @@ xfs_diflags_to_iflags(
>>>  	if (flags & XFS_DIFLAG_NOATIME)
>>>  		inode->i_flags |= S_NOATIME;
>>>  	if (S_ISREG(inode->i_mode) &&
>>> +	    ip->i_mount->m_sb.sb_blocksize == PAGE_SIZE &&
>>>  	    (ip->i_mount->m_flags & XFS_MOUNT_DAX ||
>>>  	     ip->i_d.di_flags2 & XFS_DIFLAG2_DAX))
>>>  		inode->i_flags |= S_DAX;
>>
>> Is it possible to get mounted with XFS_MOUNT_DAX if blocksize != PAGE_SIZE?
> 
> No, It's checked at mount time.
> 
>> If so, should it be?  This seems like a strange place to catch this mismatch.
> 
> It's not for catching a bad mount option (which will go away,
> anyway). it's for catching an "in-pmem" inode flag that can't be
> applied because, e.g, the kernel was rebuilt with a different base
> page size and now the extents won't align correctly for DAX to work.

Oh, with the di_flags2 already set on disk, and now encountering a
new page size.  Right, ok.

-Eric

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux