[PATCH] reduce bmv_count in xfs_vn_fiemap
Eric Sandeen
sandeen at sandeen.net
Wed Jul 15 14:33:21 CDT 2009
commit 6321e3ed2acf3ee9643cdd403e1c88605d7944ba caused
the full bmv_count's worth of getbmapx structures to get
allocated; telling it to do MAXEXTNUM was a bit insane,
resulting in ENOMEM.
Chop it down to something reasonable, the caller can
loop over this if the file has > 64 extents.
(this is a regression, FWIW)
Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
---
iff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 58973bb..370e9a7 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -680,8 +680,12 @@ xfs_vn_fiemap(
else
bm.bmv_length = BTOBB(length);
- /* our formatter will tell xfs_getbmap when to stop. */
- bm.bmv_count = MAXEXTNUM;
+ /*
+ * xfs_getbmap allocates based on that; pick a count that's
+ * not too outragous.
+ * Our formatter will tell xfs_getbmap when to stop.
+ */
+ bm.bmv_count = 64;
bm.bmv_iflags = BMV_IF_PREALLOC;
if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR)
bm.bmv_iflags |= BMV_IF_ATTRFORK;
More information about the xfs
mailing list