else if (ap->datatype & XFS_ALLOC_USERDATA)
align = xfs_get_extsz_hint(ap->ip);
+
+ if (align > 1 && (ap->flags & XFS_BMAPI_EXTSZALIGN))
+ args->alignment = align;
+
Add a comment please.
+/* Try to align allocations to the extent size hint */
+#define XFS_BMAPI_EXTSZALIGN (1u << 11)
Shouldn't we be doing this by default for any extent size hint
based allocations?
bool found;
bool atomic_sw = flags & XFS_REFLINK_ATOMIC_SW;
+ uint32_t bmapi_flags = XFS_BMAPI_COWFORK |
+ XFS_BMAPI_PREALLOC;
+
+ if (atomic_sw)
+ bmapi_flags |= XFS_BMAPI_EXTSZALIGN;
Please add a comment why you are doing this.