xfs
[Top] [All Lists]

[119/129] xfs: fix endian conversion issue in discard code

To: linux-kernel@xxxxxxxxxxxxxxx, stable@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, bpm@xxxxxxx
Subject: [119/129] xfs: fix endian conversion issue in discard code
From: Greg KH <gregkh@xxxxxxx>
Date: Mon, 23 Jan 2012 18:35:39 -0800
Cc: torvalds@xxxxxxxxxxxxxxxxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx, alan@xxxxxxxxxxxxxxxxxxx, Dave Chinner <dchinner@xxxxxxxxxx>
In-reply-to: <20120124024041.GA18422@xxxxxxxxx>
User-agent: quilt/0.50-11.1
3.2-stable review patch.  If anyone has any objections, please let me know.

------------------
Content-Length: 1239
Lines: 39

From: Dave Chinner <dchinner@xxxxxxxxxx>

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.

Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Ben Myers <bpm@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

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

--- a/fs/xfs/xfs_discard.c
+++ b/fs/xfs/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.


<Prev in Thread] Current Thread [Next in Thread>
  • [119/129] xfs: fix endian conversion issue in discard code, Greg KH <=