xfs: clear reflink flag if setting realtime flag

Since we can only turn on the rt flag if there are no data extents,
we can safely turn off the reflink flag if the rt flag is being
turned on.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reported-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Darrick J. Wong 2016-10-10 16:49:29 +11:00 коммит произвёл Dave Chinner
Родитель 9780643cde
Коммит 1987fd7434
1 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -1034,9 +1034,9 @@ xfs_ioctl_setattr_xflags(
return -EINVAL;
}
/* Don't allow us to set realtime mode for a reflinked file. */
/* Clear reflink if we are actually able to set the rt flag. */
if ((fa->fsx_xflags & FS_XFLAG_REALTIME) && xfs_is_reflink_inode(ip))
return -EINVAL;
ip->i_d.di_flags2 &= ~XFS_DIFLAG2_REFLINK;
/* Don't allow us to set DAX mode for a reflinked file for now. */
if ((fa->fsx_xflags & FS_XFLAG_DAX) && xfs_is_reflink_inode(ip))