2009-06-17 13:35:38

by Dave Kleikamp

[permalink] [raw]
Subject: [PATCH 2.6.30-stable] jfs: fix regression preventing coalescing of extents

Please pick up this patch for the 2.6.30 stable branch. It has been
committed to mainline as f7c52fd17a7dda42fc9e88c2b2678403419bfe63.

Commit fec1878fe952b994125a3be7c94b1322db586f3b caused a regression in
which contiguous blocks being allocated to the end of an extent were
getting a new extent created. This typically results in files entirely
made up of 1-block extents even though the blocks are contiguous on
disk.

Apparently grub doesn't handle a jfs file being fragmented into too many
extents, since it refuses to boot a kernel from jfs that was created by
the 2.6.30 kernel.

Signed-off-by: Dave Kleikamp <[email protected]>
Reported-by: Alex <[email protected]>

diff --git a/fs/jfs/jfs_extent.c b/fs/jfs/jfs_extent.c
index bbbd5f2..41d6045 100644
--- a/fs/jfs/jfs_extent.c
+++ b/fs/jfs/jfs_extent.c
@@ -391,6 +391,7 @@ int extHint(struct inode *ip, s64 offset, xad_t * xp)
}
XADaddress(xp, xaddr);
XADlength(xp, xlen);
+ XADoffset(xp, prev);
/*
* only preserve the abnr flag within the xad flags
* of the returned hint.

--
David Kleikamp
IBM Linux Technology Center


2009-06-29 21:15:38

by Greg KH

[permalink] [raw]
Subject: Re: [stable] [PATCH 2.6.30-stable] jfs: fix regression preventing coalescing of extents

On Wed, Jun 17, 2009 at 08:35:21AM -0500, Dave Kleikamp wrote:
> Please pick up this patch for the 2.6.30 stable branch. It has been
> committed to mainline as f7c52fd17a7dda42fc9e88c2b2678403419bfe63.

Now queued up, thanks.

greg k-h