ChangeLog, mkdir.c:
  mkdir.c (ext2fs_mkdir): Only update the parent's inode link counts if
  	the link was successful.  Patch suggested by jeremy@goop.org.

diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index d669693..e282a0a 100644
--- a/lib/ext2fs/ChangeLog
+++ b/lib/ext2fs/ChangeLog
@@ -1,5 +1,9 @@
 1999-11-19    <tytso@valinux.com>
 
+	* mkdir.c (ext2fs_mkdir): Only update the parent's inode link
+		counts if the link was successful.  Patch suggested by
+		jeremy@goop.org.
+
 	* Makefile.in (distclean): Remove TAGS and Makefile.in.old from
 		the source directory.
 
diff --git a/lib/ext2fs/mkdir.c b/lib/ext2fs/mkdir.c
index 06fd903..eca9a1d 100644
--- a/lib/ext2fs/mkdir.c
+++ b/lib/ext2fs/mkdir.c
@@ -95,19 +95,6 @@
 		goto cleanup;
 
 	/*
-	 * Update parent inode's counts
-	 */
-	if (parent != ino) {
-		retval = ext2fs_read_inode(fs, parent, &inode);
-		if (retval)
-			goto cleanup;
-		inode.i_links_count++;
-		retval = ext2fs_write_inode(fs, parent, &inode);
-		if (retval)
-			goto cleanup;
-	}
-	
-	/*
 	 * Link the directory into the filesystem hierarchy
 	 */
 	if (name) {
@@ -126,6 +113,19 @@
 	}
 
 	/*
+	 * Update parent inode's counts
+	 */
+	if (parent != ino) {
+		retval = ext2fs_read_inode(fs, parent, &inode);
+		if (retval)
+			goto cleanup;
+		inode.i_links_count++;
+		retval = ext2fs_write_inode(fs, parent, &inode);
+		if (retval)
+			goto cleanup;
+	}
+	
+	/*
 	 * Update accounting....
 	 */
 	ext2fs_mark_block_bitmap(fs->block_map, blk);