|
@@ -874,7 +874,6 @@ xfs_ialloc(
|
|
|
case S_IFREG:
|
|
|
case S_IFDIR:
|
|
|
if (pip && (pip->i_d.di_flags & XFS_DIFLAG_ANY)) {
|
|
|
- uint64_t di_flags2 = 0;
|
|
|
uint di_flags = 0;
|
|
|
|
|
|
if (S_ISDIR(mode)) {
|
|
@@ -911,20 +910,23 @@ xfs_ialloc(
|
|
|
di_flags |= XFS_DIFLAG_NODEFRAG;
|
|
|
if (pip->i_d.di_flags & XFS_DIFLAG_FILESTREAM)
|
|
|
di_flags |= XFS_DIFLAG_FILESTREAM;
|
|
|
- if (pip->i_d.di_flags2 & XFS_DIFLAG2_DAX)
|
|
|
- di_flags2 |= XFS_DIFLAG2_DAX;
|
|
|
|
|
|
ip->i_d.di_flags |= di_flags;
|
|
|
- ip->i_d.di_flags2 |= di_flags2;
|
|
|
}
|
|
|
if (pip &&
|
|
|
(pip->i_d.di_flags2 & XFS_DIFLAG2_ANY) &&
|
|
|
pip->i_d.di_version == 3 &&
|
|
|
ip->i_d.di_version == 3) {
|
|
|
+ uint64_t di_flags2 = 0;
|
|
|
+
|
|
|
if (pip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE) {
|
|
|
- ip->i_d.di_flags2 |= XFS_DIFLAG2_COWEXTSIZE;
|
|
|
+ di_flags2 |= XFS_DIFLAG2_COWEXTSIZE;
|
|
|
ip->i_d.di_cowextsize = pip->i_d.di_cowextsize;
|
|
|
}
|
|
|
+ if (pip->i_d.di_flags2 & XFS_DIFLAG2_DAX)
|
|
|
+ di_flags2 |= XFS_DIFLAG2_DAX;
|
|
|
+
|
|
|
+ ip->i_d.di_flags2 |= di_flags2;
|
|
|
}
|
|
|
/* FALLTHROUGH */
|
|
|
case S_IFLNK:
|