add Ext4:can not rm directories patches nominated by Ted

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/queue/ext4-Fix-fs-corruption-when-make_indexed_dir-fails.patch b/queue/ext4-Fix-fs-corruption-when-make_indexed_dir-fails.patch
new file mode 100644
index 0000000..fad0121
--- /dev/null
+++ b/queue/ext4-Fix-fs-corruption-when-make_indexed_dir-fails.patch
@@ -0,0 +1,48 @@
+From da270384200e4b1bf15d898fced6878643c95d44 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Tue, 3 May 2011 11:05:55 -0400
+Subject: [PATCH] ext4: Fix fs corruption when make_indexed_dir() fails
+
+commit 7ad8e4e6ae2a7c95445ee1715b1714106fb95037 upstream.
+
+When make_indexed_dir() fails (e.g. because of ENOSPC) after it has
+allocated block for index tree root, we did not properly mark all
+changed buffers dirty.  This lead to only some of these buffers being
+written out and thus effectively corrupting the directory.
+
+Fix the issue by marking all changed data dirty even in the error
+failure case.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
+index 2f31631..caa3c77 100644
+--- a/fs/ext4/namei.c
++++ b/fs/ext4/namei.c
+@@ -1452,9 +1452,19 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry,
+ 	frame->bh = bh;
+ 	bh = bh2;
+ 	de = do_split(handle,dir, &bh, frame, &hinfo, &retval);
+-	dx_release (frames);
+-	if (!(de))
++	if (!de) {
++		/*
++		 * Even if the block split failed, we have to properly write
++		 * out all the changes we did so far. Otherwise we can end up
++		 * with corrupted filesystem.
++		 */
++		ext4_mark_inode_dirty(handle, dir);
++		ext4_handle_dirty_metadata(handle, dir, frame->bh);
++		ext4_handle_dirty_metadata(handle, dir, bh);
++		dx_release(frames);
+ 		return retval;
++	}
++	dx_release(frames);
+ 
+ 	retval = add_dirent_to_buf(handle, dentry, inode, de, bh);
+ 	brelse(bh);
+-- 
+1.8.1.2
+
diff --git a/queue/ext4-don-t-dereference-null-pointer-when-make_indexe.patch b/queue/ext4-don-t-dereference-null-pointer-when-make_indexe.patch
new file mode 100644
index 0000000..fd4f84a
--- /dev/null
+++ b/queue/ext4-don-t-dereference-null-pointer-when-make_indexe.patch
@@ -0,0 +1,41 @@
+From 6a66356c4993294ea7de22483c224acc0d44511b Mon Sep 17 00:00:00 2001
+From: Allison Henderson <achender@linux.vnet.ibm.com>
+Date: Sun, 15 May 2011 00:19:41 -0400
+Subject: [PATCH] ext4: don't dereference null pointer when make_indexed_dir()
+ fails
+
+commit 6976a6f2acde2b0443cd64f1d08af90630e4ce81 upstream.
+
+Fix for a null pointer bug found while running punch hole tests
+
+Signed-off-by: Allison Henderson <achender@us.ibm.com>
+Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
+index caa3c77..41198b3 100644
+--- a/fs/ext4/namei.c
++++ b/fs/ext4/namei.c
+@@ -1451,6 +1451,10 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry,
+ 	frame->at = entries;
+ 	frame->bh = bh;
+ 	bh = bh2;
++
++	ext4_handle_dirty_metadata(handle, dir, frame->bh);
++	ext4_handle_dirty_metadata(handle, dir, bh);
++
+ 	de = do_split(handle,dir, &bh, frame, &hinfo, &retval);
+ 	if (!de) {
+ 		/*
+@@ -1459,8 +1463,6 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry,
+ 		 * with corrupted filesystem.
+ 		 */
+ 		ext4_mark_inode_dirty(handle, dir);
+-		ext4_handle_dirty_metadata(handle, dir, frame->bh);
+-		ext4_handle_dirty_metadata(handle, dir, bh);
+ 		dx_release(frames);
+ 		return retval;
+ 	}
+-- 
+1.8.1.2
+
diff --git a/queue/series b/queue/series
index a79d709..981e29b 100644
--- a/queue/series
+++ b/queue/series
@@ -3,3 +3,5 @@
 staging-comedi-ni_labpc-set-up-command4-register-aft.patch
 hugetlb-fix-resv_map-leak-in-error-path.patch
 mm-fix-vma_resv_map-NULL-pointer.patch
+ext4-Fix-fs-corruption-when-make_indexed_dir-fails.patch
+ext4-don-t-dereference-null-pointer-when-make_indexe.patch