ChangeLog, pass2.c, problem.c, problem.h:
  pass2.c (check_filetype): If the filetype filesystem feature is not
  	set, and a directory entry has a dirent feature, offer to clear it
  	(since 2.0 kernels will do complain will interpret it as a very large
  	name length field).

diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c
index 2eec914..f41cdfe 100644
--- a/e2fsck/pass2.c
+++ b/e2fsck/pass2.c
@@ -291,8 +291,13 @@
 	struct ext2_inode	inode;
 
 	if (!(ctx->fs->super->s_feature_incompat &
-	      EXT2_FEATURE_INCOMPAT_FILETYPE))
-		return 0;
+	      EXT2_FEATURE_INCOMPAT_FILETYPE)) {
+		if (filetype == 0 ||
+		    !fix_problem(ctx, PR_2_CLEAR_FILETYPE, pctx))
+			return 0;
+		dirent->name_len = dirent->name_len & 0xFF;
+		return 1;
+	}
 
 	if (ext2fs_test_inode_bitmap(ctx->inode_dir_map, dirent->inode)) {
 		should_be = EXT2_FT_DIR;