mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-16 22:38:04 +00:00
189ce92b4c
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
46 lines
1.5 KiB
Diff
46 lines
1.5 KiB
Diff
From 1075b6106024e51af7a5108626091322d2e91710 Mon Sep 17 00:00:00 2001
|
|
From: Dave Chinner <dchinner@redhat.com>
|
|
Date: Wed, 18 Jan 2012 14:41:45 -0600
|
|
Subject: [PATCH 118/129] xfs: fix endian conversion issue in discard code
|
|
|
|
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@redhat.com>
|
|
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
|
Signed-off-by: Ben Myers <bpm@sgi.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
---
|
|
fs/xfs/xfs_discard.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/fs/xfs/xfs_discard.c b/fs/xfs/xfs_discard.c
|
|
index 8a24f0c..286a051 100644
|
|
--- 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.
|
|
--
|
|
1.7.9.5
|
|
|