ChangeLog, main.c, resize2fs.c:
  main.c (main): Check to make sure we can really resize this
  	filesystem.  If there are compatible feature sets that we don't
  	support, we need to abort.
  resize2fs.c: Change to use the new prototype required by
  	block_iterate2 (which uses blkcnt_t for the blockcount).
version.h, RELEASE-NOTES:
  Interim commit of changes to date.

diff --git a/resize/ChangeLog b/resize/ChangeLog
index d91240a..fe93603 100644
--- a/resize/ChangeLog
+++ b/resize/ChangeLog
@@ -1,3 +1,12 @@
+1998-03-24  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+	* main.c (main): Check to make sure we can really resize this
+		filesystem.  If there are compatible feature sets that we
+		don't support, we need to abort.
+
+	* resize2fs.c: Change to use the new prototype required by
+		block_iterate2 (which uses blkcnt_t for the blockcount).
+
 1998-03-20  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
 	* resize2fs.c (inode_scan_and_fix): If we are expanding the
diff --git a/resize/main.c b/resize/main.c
index 87aa8dc..756e3cb 100644
--- a/resize/main.c
+++ b/resize/main.c
@@ -113,7 +113,8 @@
 	blk_t		max_size = 0;
 	io_manager	io_ptr;
 	char		*tmp;
-
+	struct ext2fs_sb *s;
+	
 	initialize_ext2_error_table();
 
 	fprintf (stderr, "resize2fs %s (%s)\n",
@@ -194,7 +195,18 @@
 		printf ("Couldn't find valid filesystem superblock.\n");
 		exit (1);
 	}
-
+	/*
+	 * Check for compatibility with the feature sets.  We need to
+	 * be more stringent than ext2fs_open().
+	 */
+	s = (struct ext2fs_sb *) fs->super;
+	if ((s->s_feature_compat & ~EXT2_LIB_FEATURE_COMPAT_SUPP) ||
+	    (s->s_feature_incompat & ~EXT2_LIB_FEATURE_RO_COMPAT_SUPP)) {
+		com_err(program_name, EXT2_ET_UNSUPP_FEATURE,
+			"(%s)", device_name);
+		exit(1);
+	}
+	
 	/*
 	 * Get the size of the containing partition, and use this for
 	 * defaults and for making sure the new filesystme doesn't
diff --git a/resize/resize2fs.c b/resize/resize2fs.c
index 1b6d082..4d85969 100644
--- a/resize/resize2fs.c
+++ b/resize/resize2fs.c
@@ -856,7 +856,7 @@
 };
 
 static int process_block(ext2_filsys fs, blk_t	*block_nr,
-			 int blockcnt, blk_t ref_block,
+			 blkcnt_t blockcnt, blk_t ref_block,
 			 int ref_offset, void *priv_data)
 {
 	struct process_block_struct *pb;
@@ -874,7 +874,7 @@
 			pb->changed = 1;
 #ifdef RESIZE2FS_DEBUG
 			if (pb->rfs->flags & RESIZE_DEBUG_BMOVE)
-				printf("ino=%ld, blockcnt=%d, %u->%u\n", 
+				printf("ino=%ld, blockcnt=%ld, %u->%u\n", 
 				       pb->ino, blockcnt, block, new_block);
 #endif
 			block = new_block;
@@ -882,7 +882,7 @@
 	}
 	if (pb->is_dir) {
 		retval = ext2fs_add_dir_block(fs->dblist, pb->ino,
-					      block, blockcnt);
+					      block, (int) blockcnt);
 		if (retval) {
 			pb->error = retval;
 			ret |= BLOCK_ABORT;