xfs
[Top] [All Lists]

[PATCH] reduce bmv_count in xfs_vn_fiemap

To: xfs mailing list <xfs@xxxxxxxxxxx>
Subject: [PATCH] reduce bmv_count in xfs_vn_fiemap
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Wed, 15 Jul 2009 14:33:21 -0500
User-agent: Thunderbird 2.0.0.21 (X11/20090320)
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@xxxxxxxxxxx>
---

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;

<Prev in Thread] Current Thread [Next in Thread>