]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
jfs: fix regression preventing coalescing of extents
authorDave Kleikamp <shaggy@linux.vnet.ibm.com>
Tue, 16 Jun 2009 18:43:22 +0000 (13:43 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 2 Jul 2009 23:49:52 +0000 (16:49 -0700)
commit f7c52fd17a7dda42fc9e88c2b2678403419bfe63 upstream.

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 <shaggy@linux.vnet.ibm.com>
Reported-by: Alex <alevkovich@tut.by>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/jfs/jfs_extent.c

index bbbd5f202e3740d7e735449eb8e6e9626d56e4f1..41d6045dbeb08b5db952e9945a054bf722470451 100644 (file)
@@ -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.