This is a note to let you know that I've just added the patch titled

    xfs: fix endian conversion issue in discard code

to the 3.0-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     xfs-fix-endian-conversion-issue-in-discard-code.patch
and it can be found in the queue-3.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From [email protected]  Thu Jan 26 16:45:31 2012
From: [email protected]
Date: Thu, 26 Jan 2012 13:47:42 -0600
Subject: xfs: fix endian conversion issue in discard code
To: [email protected], [email protected], [email protected]
Cc: Dave Chinner <[email protected]>
Message-ID: <[email protected]>


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]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 fs/xfs/linux-2.6/xfs_discard.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- 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.


Patches currently in stable-queue which might be from [email protected] are

queue-3.0/xfs-fix-endian-conversion-issue-in-discard-code.patch
queue-3.0/xfs-fix-missing-xfs_iunlock-on-error-recovery-path-in-xfs_readlink.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to