XFS_DIFLAG2_REFLINK
ip->i_diflags2 |= XFS_DIFLAG2_REFLINK;
ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
(XFS_DIFLAG2_DAX | XFS_DIFLAG2_REFLINK | XFS_DIFLAG2_COWEXTSIZE | \
if ((flags2 & (XFS_DIFLAG2_REFLINK | XFS_DIFLAG2_COWEXTSIZE)) &&
if ((flags2 & XFS_DIFLAG2_REFLINK) && (mode & S_IFMT) != S_IFREG)
if ((flags2 & XFS_DIFLAG2_REFLINK) && (flags & XFS_DIFLAG_REALTIME) &&
(ip->i_diflags2 & (XFS_DIFLAG2_REFLINK |
sc->ip->i_diflags2 |= XFS_DIFLAG2_REFLINK;
if ((flags2 & XFS_DIFLAG2_REFLINK) &&
if ((flags2 & XFS_DIFLAG2_REFLINK) && !S_ISREG(mode))
if ((flags & XFS_DIFLAG_REALTIME) && (flags2 & XFS_DIFLAG2_REFLINK) &&
if (flags2 & XFS_DIFLAG2_REFLINK) {
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
flags2 |= XFS_DIFLAG2_REFLINK;
flags2 &= ~(XFS_DIFLAG2_REFLINK | XFS_DIFLAG2_COWEXTSIZE);
sc->ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
if (ip->i_diflags2 & XFS_DIFLAG2_REFLINK)
tip->i_diflags2 |= XFS_DIFLAG2_REFLINK;
if ((ip->i_diflags2 & XFS_DIFLAG2_REFLINK) ^
(tip->i_diflags2 & XFS_DIFLAG2_REFLINK)) {
f = ip->i_diflags2 & XFS_DIFLAG2_REFLINK;
ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
ip->i_diflags2 |= tip->i_diflags2 & XFS_DIFLAG2_REFLINK;
tip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
tip->i_diflags2 |= f & XFS_DIFLAG2_REFLINK;
ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;
return ip->i_diflags2 & XFS_DIFLAG2_REFLINK;
src->i_diflags2 |= XFS_DIFLAG2_REFLINK;
dest->i_diflags2 |= XFS_DIFLAG2_REFLINK;
ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK;