|
@@ -4487,6 +4487,16 @@ xfs_bmapi(
|
|
|
/* Figure out the extent size, adjust alen */
|
|
|
extsz = xfs_get_extsz_hint(ip);
|
|
|
if (extsz) {
|
|
|
+ /*
|
|
|
+ * make sure we don't exceed a single
|
|
|
+ * extent length when we align the
|
|
|
+ * extent by reducing length we are
|
|
|
+ * going to allocate by the maximum
|
|
|
+ * amount extent size aligment may
|
|
|
+ * require.
|
|
|
+ */
|
|
|
+ alen = XFS_FILBLKS_MIN(len,
|
|
|
+ MAXEXTLEN - (2 * extsz - 1));
|
|
|
error = xfs_bmap_extsize_align(mp,
|
|
|
&got, &prev, extsz,
|
|
|
rt, eof,
|