packages (LINUX_3_0): kernel/kernel-small_fixes.patch fitrim xfs fix

arekm arekm at pld-linux.org
Fri Jan 27 08:33:36 CET 2012


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 <dchinner at redhat.com>
+
+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 <dchinner at redhat.com>
+Reviewed-by: Christoph Hellwig <hch at lst.de>
+Signed-off-by: Ben Myers <bpm at sgi.com>
+---
+ 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
+xfs at oss.sgi.com
+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



More information about the pld-cvs-commit mailing list