Re: Ext4 tree backports for 2.6.27.13 and 2.6.28.2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 10 Feb 2009 18:36:02 -0500
Chuck Ebbert <cebbert@xxxxxxxxxx> wrote:

> On Sat, 31 Jan 2009 00:25:39 -0500
> "Theodore Ts'o" <tytso@xxxxxxx> wrote:
> 
> > I've updated the ext4 backport branches on the ext4 git tree:
> > 
> >    git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git
> >    http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git
> > 
> > The for-stable branch is branched off of 2.6.28.2, and has a candidate
> > set of patches to be included in the next stable release.  The
> > for-stable-2.6.27 branch is branched off of 2.6.27.13.  
> > 
> > I'm more confident with the 2.6.28 stable candidate than the 2.6.27
> > stable candidates at the moment, but given that we just missed the
> > 2.6.27.14 and 2.6.28.3 release cycles, that should give us plenty of
> > time to test the patches.
> > 
> 
> .27 has a bug and one patch got merged in .27.14...
> 
> > 
> > mainline 2.6.28  2.6.27
> >     commit-description
> > -------------------------------------------------------------------------
> > c894058d -----   71ae3e25
> >     ext4: Use an rbtree for tracking blocks freed during transaction.
> > 
> 
> The chunk that creates the ext4_free_block_extents cache is misapplied: it
> ended up at the end of ext4_mb_use_preallocated() instead of
> init_ext4_mballoc(). The null cache pointer then causes oopses when trying
> to delete files.
> 

Here's the fix for that:


Move init of the ext4_free_block_extents cache to the right place.
Original patch that misapplies this is at:
http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commitdiff;h=71ae3e256af82b77100bd2e7392fd510aca0b8b9
"ext4: Use an rbtree for tracking blocks freed during transaction."

Signed-off-by: Chuck Ebbert <cebbert@xxxxxxxxxx>

Index: linux-2.6.27.noarch/fs/ext4/mballoc.c
===================================================================
--- linux-2.6.27.noarch.orig/fs/ext4/mballoc.c
+++ linux-2.6.27.noarch/fs/ext4/mballoc.c
@@ -3060,6 +3060,16 @@ int __init init_ext4_mballoc(void)
 		kmem_cache_destroy(ext4_pspace_cachep);
 		return -ENOMEM;
 	}
+
+	ext4_free_ext_cachep =
+		kmem_cache_create("ext4_free_block_extents",
+				     sizeof(struct ext4_free_data),
+				     0, SLAB_RECLAIM_ACCOUNT, NULL);
+	if (ext4_free_ext_cachep == NULL) {
+		kmem_cache_destroy(ext4_pspace_cachep);
+		kmem_cache_destroy(ext4_ac_cachep);
+		return -ENOMEM;
+	}
 #ifdef CONFIG_PROC_FS
 	proc_root_ext4 = proc_mkdir("fs/ext4", NULL);
 	if (proc_root_ext4 == NULL)
@@ -3597,15 +3607,6 @@ ext4_mb_use_preallocated(struct ext4_all
 		return 1;
 	}
 
-	ext4_free_ext_cachep =
-		kmem_cache_create("ext4_free_block_extents",
-				     sizeof(struct ext4_free_data),
-				     0, SLAB_RECLAIM_ACCOUNT, NULL);
-	if (ext4_free_ext_cachep == NULL) {
-		kmem_cache_destroy(ext4_pspace_cachep);
-		kmem_cache_destroy(ext4_ac_cachep);
-		return -ENOMEM;
-	}
 	return 0;
 }
 
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux