complaints about libc developers don't understand the concept of
compatibility with previous versions of libc.)
+Added support for the EXT2_FEATURE_INCOMPAT_DIRNAME_SIZE feature,
+which means that e2fsprogs will ignore the high 8 bits of the
+directory entry's name_len field, so that it can be used for other
+purposes.
+
+Added support for the EXT2_FEATURE_RO_COMPAT_LARGE_FILE feature.
+E2fsprogs will now support filesystems with 64-bit sized files.
+
+Added support for the EXT2_FEATURE_COMPAT_DIR_PREALLOC feature.
+
Added new program "e2label", contributed by Andries Brouwer. E2label
provides an easy-to-use interface to modify the filesystem label.
+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
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",
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
};
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;
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;
}
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;
*/
#define E2FSPROGS_VERSION "1.12-WIP"
-#define E2FSPROGS_DATE "26-Feb-98"
+#define E2FSPROGS_DATE "23-Mar-98"