From Alex Tomas.

We can't assert that any more because locks are dropped.


 fs/ext3/ialloc.c |   21 ++++-----------------
 1 files changed, 4 insertions(+), 17 deletions(-)

diff -puN fs/ext3/ialloc.c~ext3-concurrent-block-inode-allocation-fix fs/ext3/ialloc.c
--- 25/fs/ext3/ialloc.c~ext3-concurrent-block-inode-allocation-fix	2003-05-29 00:32:36.000000000 -0700
+++ 25-akpm/fs/ext3/ialloc.c	2003-05-29 01:21:52.000000000 -0700
@@ -481,23 +481,10 @@ repeat:
 		err = ext3_journal_dirty_metadata(handle, bitmap_bh);
 		if (err) goto fail;
 	} else {
-		if (le16_to_cpu(gdp->bg_free_inodes_count) != 0) {
-			ext3_error (sb, "ext3_new_inode",
-				    "Free inodes count corrupted in group %d",
-				    group);
-			/* Is it really ENOSPC? */
-			err = -ENOSPC;
-			if (sb->s_flags & MS_RDONLY)
-				goto fail;
-
-			BUFFER_TRACE(bh2, "get_write_access");
-			err = ext3_journal_get_write_access(handle, bh2);
-			if (err) goto fail;
-			gdp->bg_free_inodes_count = 0;
-			BUFFER_TRACE(bh2, "call ext3_journal_dirty_metadata");
-			err = ext3_journal_dirty_metadata(handle, bh2);
-			if (err) goto fail;
-		}
+		/*
+		 * This case is possible in concurrent environment.  Just
+		 * repeat from group search
+		 */
 		goto repeat;
 	}
 	ino += group * EXT3_INODES_PER_GROUP(sb) + 1;

_