Author: arekm                        Date: Fri Jan 27 07:33:36 2012 GMT
Module: packages                      Tag: LINUX_3_0
---- Log message:
 fitrim xfs fix

---- Files affected:
packages/kernel:
   kernel-small_fixes.patch (1.43.2.15 -> 1.43.2.16) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-small_fixes.patch
diff -u packages/kernel/kernel-small_fixes.patch:1.43.2.15 
packages/kernel/kernel-small_fixes.patch:1.43.2.16
--- packages/kernel/kernel-small_fixes.patch:1.43.2.15  Sat Jan  7 14:35:58 2012
+++ packages/kernel/kernel-small_fixes.patch    Fri Jan 27 08:33:31 2012
@@ -905,3 +905,51 @@
 1.7.4.1
 
 
+From: Dave Chinner <[email protected]>
+
+commit b1c770c273a4787069306fc82aab245e9ac72e9d upstream
+
+When finding the longest extent in an AG, we read the value directly
+out of the AGF buffer without endian conversion. This will give an
+incorrect length, resulting in FITRIM operations potentially not
+trimming everything that it should.
+
+Note, for 3.0-stable this has been modified to apply to
+fs/xfs/linux-2.6/xfs_discard.c instead of fs/xfs/xfs_discard.c.  -bpm
+
+Signed-off-by: Dave Chinner <[email protected]>
+Reviewed-by: Christoph Hellwig <[email protected]>
+Signed-off-by: Ben Myers <[email protected]>
+---
+ fs/xfs/linux-2.6/xfs_discard.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/fs/xfs/linux-2.6/xfs_discard.c b/fs/xfs/linux-2.6/xfs_discard.c
+index 244e797..572494f 100644
+--- a/fs/xfs/linux-2.6/xfs_discard.c
++++ b/fs/xfs/linux-2.6/xfs_discard.c
+@@ -68,7 +68,7 @@ xfs_trim_extents(
+        * Look up the longest btree in the AGF and start with it.
+        */
+       error = xfs_alloc_lookup_le(cur, 0,
+-                                  XFS_BUF_TO_AGF(agbp)->agf_longest, &i);
++                          be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_longest), &i);
+       if (error)
+               goto out_del_cursor;
+ 
+@@ -84,7 +84,7 @@ xfs_trim_extents(
+               if (error)
+                       goto out_del_cursor;
+               XFS_WANT_CORRUPTED_GOTO(i == 1, out_del_cursor);
+-              ASSERT(flen <= XFS_BUF_TO_AGF(agbp)->agf_longest);
++              ASSERT(flen <= be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_longest));
+ 
+               /*
+                * Too small?  Give up.
+-- 
+1.7.8.rc4
+
+_______________________________________________
+xfs mailing list
[email protected]
+http://oss.sgi.com/mailman/listinfo/xfs
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-small_fixes.patch?r1=1.43.2.15&r2=1.43.2.16&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to