summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debugfs/ChangeLog5
-rw-r--r--debugfs/debugfs.c7
-rw-r--r--e2fsck/ChangeLog3
-rw-r--r--e2fsck/journal.c106
-rw-r--r--e2fsck/pass1.c7
-rw-r--r--e2fsck/super.c66
-rw-r--r--e2fsck/unix.c38
7 files changed, 117 insertions, 115 deletions
diff --git a/debugfs/ChangeLog b/debugfs/ChangeLog
index 62ce6ab0..2e4df375 100644
--- a/debugfs/ChangeLog
+++ b/debugfs/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-01 <tytso@snap.thunk.org>
+
+ * debugfs.c Replace use of struct ext2fs_sb with struct
+ ext2_super_block.
+
2000-12-30 <tytso@snap.thunk.org>
* dump.c (fix_perms): Fix bug for systems which don't have fchown;
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index a38b232d..846f6077 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -228,9 +228,8 @@ void do_init_filesys(int argc, char **argv)
return;
}
-static void print_features(struct ext2fs_sb * s, FILE *f)
+static void print_features(struct ext2_super_block * s, FILE *f)
{
-#ifdef EXT2_DYNAMIC_REV
int i, j, printed=0;
__u32 *mask = &s->s_feature_compat, m;
@@ -246,14 +245,12 @@ __u32 *mask = &s->s_feature_compat, m;
if (printed == 0)
printf("(none)");
printf("\n");
-#endif
}
void do_show_super_stats(int argc, char *argv[])
{
int i;
FILE *out;
- struct ext2fs_sb *sb;
struct ext2_group_desc *gdp;
int c, header_only = 0;
char buf[80];
@@ -1464,7 +1461,7 @@ void do_features(int argc, char *argv[])
else
ext2fs_mark_super_dirty(current_fs);
}
- print_features((struct ext2fs_sb *) current_fs->super, stdout);
+ print_features(current_fs->super, stdout);
}
static int source_file(const char *cmd_file, int sci_idx)
diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog
index 700ffa93..2034d371 100644
--- a/e2fsck/ChangeLog
+++ b/e2fsck/ChangeLog
@@ -1,5 +1,8 @@
2001-01-01 <tytso@snap.thunk.org>
+ * journal.c, pass1.c, super.c, unix.c: Replace use of struct
+ ext2fs_sb with struct ext2_super_block.
+
* pass1.c (check_blocks): Remove use of EXT2_HAS_*_FEATURE macros.
2000-12-31 <tytso@snap.thunk.org>
diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index 8eaa954b..95a45e2a 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -138,17 +138,16 @@ void wait_on_buffer(struct buffer_head *bh)
static void e2fsck_clear_recover(e2fsck_t ctx, int error)
{
- struct ext2fs_sb *s = (struct ext2fs_sb *)ctx->fs->super;
-
- s->s_feature_incompat &= ~EXT3_FEATURE_INCOMPAT_RECOVER;
+ ctx->fs->super->s_feature_incompat &= ~EXT3_FEATURE_INCOMPAT_RECOVER;
/* if we had an error doing journal recovery, we need a full fsck */
if (error)
- s->s_state &= ~EXT2_VALID_FS;
+ ctx->fs->super->s_state &= ~EXT2_VALID_FS;
ext2fs_mark_super_dirty(ctx->fs);
}
-static int e2fsck_journal_init_inode(e2fsck_t ctx, struct ext2fs_sb *s,
+static int e2fsck_journal_init_inode(e2fsck_t ctx,
+ struct ext2_super_block *s,
ino_t journal_inum, journal_t **journal)
{
struct inode *inode;
@@ -210,73 +209,74 @@ static int e2fsck_get_journal(e2fsck_t ctx, journal_t **journal)
{
char uuid_str[40];
struct problem_context pctx;
- struct ext2fs_sb *s = (struct ext2fs_sb *)ctx->fs->super;
- int recover = s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER;
+ struct ext2_super_block *sb = ctx->fs->super;
+ int recover = ctx->fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_RECOVER;
clear_problem_context(&pctx);
- if (s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) {
- if (s->s_journal_dev) {
- pctx.num = s->s_journal_dev;
+ if (sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) {
+ if (sb->s_journal_dev) {
+ pctx.num = sb->s_journal_dev;
/* this problem aborts on -y, -p, unsupported on -n */
if (!fix_problem(ctx, PR_0_JOURNAL_UNSUPP_DEV, &pctx))
return EXT2_ET_UNSUPP_FEATURE;
- s->s_journal_dev = 0;
- s->s_state &= ~EXT2_VALID_FS;
+ sb->s_journal_dev = 0;
+ sb->s_state &= ~EXT2_VALID_FS;
ext2fs_mark_super_dirty(ctx->fs);
}
- if (!uuid_is_null(s->s_journal_uuid)) {
- uuid_unparse(s->s_journal_uuid, uuid_str);
+ if (!uuid_is_null(sb->s_journal_uuid)) {
+ uuid_unparse(sb->s_journal_uuid, uuid_str);
pctx.str = uuid_str;
/* this problem aborts on -y, -p, unsupported on -n */
if (!fix_problem(ctx, PR_0_JOURNAL_UNSUPP_UUID, &pctx))
return EXT2_ET_UNSUPP_FEATURE;
- uuid_clear(s->s_journal_uuid);
- s->s_state &= ~EXT2_VALID_FS;
+ uuid_clear(sb->s_journal_uuid);
+ sb->s_state &= ~EXT2_VALID_FS;
ext2fs_mark_super_dirty(ctx->fs);
}
- if (!s->s_journal_inum)
+ if (!sb->s_journal_inum)
return EXT2_ET_BAD_INODE_NUM;
}
- if (s->s_journal_dev) {
- pctx.num = s->s_journal_dev;
+ if (sb->s_journal_dev) {
+ pctx.num = sb->s_journal_dev;
if (!fix_problem(ctx, PR_0_JOURNAL_BAD_DEV, &pctx))
return EXT2_ET_UNSUPP_FEATURE;
- s->s_journal_dev = 0;
- s->s_state &= ~EXT2_VALID_FS;
+ sb->s_journal_dev = 0;
+ sb->s_state &= ~EXT2_VALID_FS;
ext2fs_mark_super_dirty(ctx->fs);
}
- if (!uuid_is_null(s->s_journal_uuid)) {
- uuid_unparse(s->s_journal_uuid, uuid_str);
+ if (!uuid_is_null(sb->s_journal_uuid)) {
+ uuid_unparse(sb->s_journal_uuid, uuid_str);
pctx.str = uuid_str;
if (!fix_problem(ctx, PR_0_JOURNAL_BAD_UUID, &pctx))
return EXT2_ET_UNSUPP_FEATURE;
- uuid_clear(s->s_journal_uuid);
- s->s_state &= ~EXT2_VALID_FS;
+ uuid_clear(sb->s_journal_uuid);
+ sb->s_state &= ~EXT2_VALID_FS;
ext2fs_mark_super_dirty(ctx->fs);
}
- return e2fsck_journal_init_inode(ctx, s, s->s_journal_inum, journal);
+ return e2fsck_journal_init_inode(ctx, sb, sb->s_journal_inum, journal);
}
static int e2fsck_journal_fix_bad_inode(e2fsck_t ctx,
struct problem_context *pctx)
{
- struct ext2fs_sb *s = (struct ext2fs_sb *)ctx->fs->super;
- int recover = s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER;
- int has_journal = s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL;
+ struct ext2_super_block *sb = ctx->fs->super;
+ int recover = ctx->fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_RECOVER;
+ int has_journal = ctx->fs->super->s_feature_compat &
+ EXT3_FEATURE_COMPAT_HAS_JOURNAL;
- if (has_journal || s->s_journal_inum) {
+ if (has_journal || sb->s_journal_inum) {
/* The journal inode is bogus, remove and force full fsck */
if (fix_problem(ctx, PR_0_JOURNAL_BAD_INODE, pctx)) {
- struct ext2fs_sb *s =(struct ext2fs_sb *)ctx->fs->super;
-
- if (has_journal && s->s_journal_inum)
+ if (has_journal && sb->s_journal_inum)
printf("*** ext3 journal has been deleted - "
"filesystem is now ext2 only ***\n\n");
- s->s_feature_compat &= ~EXT3_FEATURE_COMPAT_HAS_JOURNAL;
- s->s_journal_inum = 0;
+ sb->s_feature_compat &= ~EXT3_FEATURE_COMPAT_HAS_JOURNAL;
+ sb->s_journal_inum = 0;
e2fsck_clear_recover(ctx, 1);
return 0;
}
@@ -294,7 +294,7 @@ static int e2fsck_journal_fix_bad_inode(e2fsck_t ctx,
static int e2fsck_journal_fix_unsupported_super(e2fsck_t ctx,
struct problem_context *pctx)
{
- struct ext2fs_sb *s = (struct ext2fs_sb *)ctx->fs->super;
+ struct ext2_super_block *sb = ctx->fs->super;
/* Unsupported journal superblock - first choice is abort.
* Declining that gives the option to reset the superblock.
@@ -302,7 +302,7 @@ static int e2fsck_journal_fix_unsupported_super(e2fsck_t ctx,
* Otherwise we get the chance to delete the journal, and
* failing that we abort because we can't handle this.
*/
- if (s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL &&
+ if (sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL &&
fix_problem(ctx, PR_0_JOURNAL_UNSUPP_SUPER, pctx))
return EXT2_ET_CORRUPT_SUPERBLOCK;
@@ -429,12 +429,13 @@ void e2fsck_journal_reset_super(e2fsck_t ctx, journal_superblock_t *jsb,
static int e2fsck_journal_fix_corrupt_super(e2fsck_t ctx, journal_t *journal,
struct problem_context *pctx)
{
- struct ext2fs_sb *s = (struct ext2fs_sb *)ctx->fs->super;
- int recover = s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER;
+ struct ext2_super_block *sb = ctx->fs->super;
+ int recover = ctx->fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_RECOVER;
pctx->num = journal->j_inode->i_ino;
- if (s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) {
+ if (sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) {
if (fix_problem(ctx, PR_0_JOURNAL_BAD_SUPER, pctx)) {
e2fsck_journal_reset_super(ctx, journal->j_superblock,
journal);
@@ -473,24 +474,25 @@ static void e2fsck_journal_release(e2fsck_t ctx, journal_t *journal, int reset)
*/
int e2fsck_check_ext3_journal(e2fsck_t ctx)
{
- struct ext2fs_sb *s = (struct ext2fs_sb *)ctx->fs->super;
+ struct ext2_super_block *sb = ctx->fs->super;
journal_t *journal;
- int recover = s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER;
+ int recover = ctx->fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_RECOVER;
struct problem_context pctx;
int reset = 0;
int retval;
/* If we don't have any journal features, don't do anything more */
- if (!(s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) &&
- !recover && s->s_journal_inum == 0 && s->s_journal_dev == 0 &&
- uuid_is_null(s->s_journal_uuid))
+ if (!(sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) &&
+ !recover && sb->s_journal_inum == 0 && sb->s_journal_dev == 0 &&
+ uuid_is_null(sb->s_journal_uuid))
return 0;
#ifdef JFS_DEBUG
journal_enable_debug = 2;
#endif
clear_problem_context(&pctx);
- pctx.num = s->s_journal_inum;
+ pctx.num = sb->s_journal_inum;
retval = e2fsck_get_journal(ctx, &journal);
if (retval) {
@@ -513,23 +515,23 @@ int e2fsck_check_ext3_journal(e2fsck_t ctx)
* with -y, -n, or -p, only if a user isn't making up their mind.
*/
no_has_journal:
- if (!(s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL)) {
- recover = s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER;
+ if (!(sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL)) {
+ recover = sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER;
pctx.str = "inode";
if (fix_problem(ctx, PR_0_JOURNAL_HAS_JOURNAL, &pctx)) {
if (recover &&
!fix_problem(ctx, PR_0_JOURNAL_RECOVER_SET, &pctx))
goto no_has_journal;
- s->s_journal_inum = 0;
+ sb->s_journal_inum = 0;
e2fsck_clear_recover(ctx, recover);
} else if (!(ctx->options & E2F_OPT_READONLY)) {
- s->s_feature_compat |= EXT3_FEATURE_COMPAT_HAS_JOURNAL;
+ sb->s_feature_compat |= EXT3_FEATURE_COMPAT_HAS_JOURNAL;
ext2fs_mark_super_dirty(ctx->fs);
}
}
- if (s->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL &&
- !(s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) &&
+ if (sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL &&
+ !(sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) &&
journal->j_superblock->s_start != 0) {
if (fix_problem(ctx, PR_0_JOURNAL_RESET_JOURNAL, &pctx))
reset = 1;
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
index df1522af..098988c5 100644
--- a/e2fsck/pass1.c
+++ b/e2fsck/pass1.c
@@ -196,7 +196,7 @@ void e2fsck_pass1(e2fsck_t ctx)
unsigned char frag, fsize;
struct problem_context pctx;
struct scan_callback_struct scan_struct;
- struct ext2fs_sb *sb;
+ struct ext2_super_block *sb = ctx->fs->super;
int imagic_fs;
#ifdef RESOURCE_TRACK
@@ -224,7 +224,6 @@ void e2fsck_pass1(e2fsck_t ctx)
}
#undef EXT2_BPP
- sb = (struct ext2fs_sb *) fs->super;
imagic_fs = (sb->s_feature_compat & EXT2_FEATURE_COMPAT_IMAGIC_INODES);
/*
@@ -823,7 +822,6 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
struct ext2_inode *inode = pctx->inode;
int bad_size = 0;
__u64 size;
- struct ext2fs_sb *sb;
if (!ext2fs_inode_has_valid_blocks(pctx->inode))
return;
@@ -909,9 +907,8 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
((inode->i_size & (fs->blocksize-1)) != 0))
bad_size = 1;
else if (nblock < (pb.last_block + 1)) {
- sb = (struct ext2fs_sb *) fs->super;
if (((pb.last_block + 1) - nblock) >
- sb->s_prealloc_dir_blocks)
+ fs->super->s_prealloc_dir_blocks)
bad_size = 2;
}
} else {
diff --git a/e2fsck/super.c b/e2fsck/super.c
index 92eb4604..8b8e04f4 100644
--- a/e2fsck/super.c
+++ b/e2fsck/super.c
@@ -293,7 +293,7 @@ void check_super_block(e2fsck_t ctx)
{
ext2_filsys fs = ctx->fs;
blk_t first_block, last_block;
- struct ext2fs_sb *s = (struct ext2fs_sb *) fs->super;
+ struct ext2_super_block *sb = fs->super;
blk_t blocks_per_group = fs->super->s_blocks_per_group;
int inodes_per_block;
dgrp_t i;
@@ -316,26 +316,26 @@ void check_super_block(e2fsck_t ctx)
/*
* Verify the super block constants...
*/
- check_super_value(ctx, "inodes_count", s->s_inodes_count,
+ check_super_value(ctx, "inodes_count", sb->s_inodes_count,
MIN_CHECK, 1, 0);
- check_super_value(ctx, "blocks_count", s->s_blocks_count,
+ check_super_value(ctx, "blocks_count", sb->s_blocks_count,
MIN_CHECK, 1, 0);
- check_super_value(ctx, "first_data_block", s->s_first_data_block,
- MAX_CHECK, 0, s->s_blocks_count);
- check_super_value(ctx, "log_frag_size", s->s_log_frag_size,
+ check_super_value(ctx, "first_data_block", sb->s_first_data_block,
+ MAX_CHECK, 0, sb->s_blocks_count);
+ check_super_value(ctx, "log_frag_size", sb->s_log_frag_size,
MAX_CHECK, 0, 2);
- check_super_value(ctx, "log_block_size", s->s_log_block_size,
- MIN_CHECK | MAX_CHECK, s->s_log_frag_size,
+ check_super_value(ctx, "log_block_size", sb->s_log_block_size,
+ MIN_CHECK | MAX_CHECK, sb->s_log_frag_size,
2);
- check_super_value(ctx, "frags_per_group", s->s_frags_per_group,
- MIN_CHECK | MAX_CHECK, 1, 8 * EXT2_BLOCK_SIZE(s));
- check_super_value(ctx, "blocks_per_group", s->s_blocks_per_group,
- MIN_CHECK | MAX_CHECK, 1, 8 * EXT2_BLOCK_SIZE(s));
- check_super_value(ctx, "inodes_per_group", s->s_inodes_per_group,
+ check_super_value(ctx, "frags_per_group", sb->s_frags_per_group,
+ MIN_CHECK | MAX_CHECK, 1, 8 * EXT2_BLOCK_SIZE(sb));
+ check_super_value(ctx, "blocks_per_group", sb->s_blocks_per_group,
+ MIN_CHECK | MAX_CHECK, 1, 8 * EXT2_BLOCK_SIZE(sb));
+ check_super_value(ctx, "inodes_per_group", sb->s_inodes_per_group,
MIN_CHECK | MAX_CHECK, 1,
inodes_per_block * blocks_per_group);
- check_super_value(ctx, "r_blocks_count", s->s_r_blocks_count,
- MAX_CHECK, 0, s->s_blocks_count);
+ check_super_value(ctx, "r_blocks_count", sb->s_r_blocks_count,
+ MAX_CHECK, 0, sb->s_blocks_count);
if (!ctx->num_blocks) {
pctx.errcode = e2fsck_get_device_size(ctx);
@@ -345,8 +345,8 @@ void check_super_block(e2fsck_t ctx)
return;
}
if ((pctx.errcode != EXT2_ET_UNIMPLEMENTED) &&
- (ctx->num_blocks < s->s_blocks_count)) {
- pctx.blk = s->s_blocks_count;
+ (ctx->num_blocks < sb->s_blocks_count)) {
+ pctx.blk = sb->s_blocks_count;
pctx.blk2 = ctx->num_blocks;
if (fix_problem(ctx, PR_0_FS_SIZE_WRONG, &pctx)) {
ctx->flags |= E2F_FLAG_ABORT;
@@ -355,39 +355,39 @@ void check_super_block(e2fsck_t ctx)
}
}
- if (s->s_log_block_size != s->s_log_frag_size) {
- pctx.blk = EXT2_BLOCK_SIZE(s);
- pctx.blk2 = EXT2_FRAG_SIZE(s);
+ if (sb->s_log_block_size != sb->s_log_frag_size) {
+ pctx.blk = EXT2_BLOCK_SIZE(sb);
+ pctx.blk2 = EXT2_FRAG_SIZE(sb);
fix_problem(ctx, PR_0_NO_FRAGMENTS, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
return;
}
- should_be = s->s_frags_per_group >>
- (s->s_log_block_size - s->s_log_frag_size);
- if (s->s_blocks_per_group != should_be) {
- pctx.blk = s->s_blocks_per_group;
+ should_be = sb->s_frags_per_group >>
+ (sb->s_log_block_size - sb->s_log_frag_size);
+ if (sb->s_blocks_per_group != should_be) {
+ pctx.blk = sb->s_blocks_per_group;
pctx.blk2 = should_be;
fix_problem(ctx, PR_0_BLOCKS_PER_GROUP, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
return;
}
- should_be = (s->s_log_block_size == 0) ? 1 : 0;
- if (s->s_first_data_block != should_be) {
- pctx.blk = s->s_first_data_block;
+ should_be = (sb->s_log_block_size == 0) ? 1 : 0;
+ if (sb->s_first_data_block != should_be) {
+ pctx.blk = sb->s_first_data_block;
pctx.blk2 = should_be;
fix_problem(ctx, PR_0_FIRST_DATA_BLOCK, &pctx);
ctx->flags |= E2F_FLAG_ABORT;
return;
}
- should_be = s->s_inodes_per_group * fs->group_desc_count;
- if (s->s_inodes_count != should_be) {
- pctx.ino = s->s_inodes_count;
+ should_be = sb->s_inodes_per_group * fs->group_desc_count;
+ if (sb->s_inodes_count != should_be) {
+ pctx.ino = sb->s_inodes_count;
pctx.ino2 = should_be;
if (fix_problem(ctx, PR_0_INODE_COUNT_WRONG, &pctx)) {
- s->s_inodes_count = should_be;
+ sb->s_inodes_count = should_be;
ext2fs_mark_super_dirty(fs);
}
}
@@ -449,9 +449,9 @@ void check_super_block(e2fsck_t ctx)
/*
* If the UUID field isn't assigned, assign it.
*/
- if (!(ctx->options & E2F_OPT_READONLY) && uuid_is_null(s->s_uuid)) {
+ if (!(ctx->options & E2F_OPT_READONLY) && uuid_is_null(sb->s_uuid)) {
if (fix_problem(ctx, PR_0_ADD_UUID, &pctx)) {
- uuid_generate(s->s_uuid);
+ uuid_generate(sb->s_uuid);
ext2fs_mark_super_dirty(fs);
}
}
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index c19a2895..a22a19d0 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -637,7 +637,7 @@ int main (int argc, char *argv[])
int i;
ext2_filsys fs = 0;
io_manager io_ptr;
- struct ext2fs_sb *s;
+ struct ext2_super_block *sb;
const char *lib_ver_date;
int my_ver, lib_ver;
e2fsck_t ctx;
@@ -766,28 +766,26 @@ restart:
}
ctx->fs = fs;
fs->priv_data = ctx;
-#ifdef EXT2_CURRENT_REV
- if (fs->super->s_rev_level > E2FSCK_CURRENT_REV) {
+ sb = fs->super;
+ if (sb->s_rev_level > E2FSCK_CURRENT_REV) {
com_err(ctx->program_name, EXT2_ET_REV_TOO_HIGH,
_("while trying to open %s"),
ctx->filesystem_name);
get_newer:
fatal_error(ctx, _("Get a newer version of e2fsck!"));
}
-#endif
- s = (struct ext2fs_sb *) fs->super;
/*
* Set the device name, which is used whenever we print error
* or informational messages to the user.
*/
if (ctx->device_name == 0 &&
- (s->s_volume_name[0] != 0)) {
- char *cp = malloc(sizeof(s->s_volume_name)+1);
+ (sb->s_volume_name[0] != 0)) {
+ char *cp = malloc(sizeof(sb->s_volume_name)+1);
if (cp) {
- strncpy(cp, s->s_volume_name,
- sizeof(s->s_volume_name));
- cp[sizeof(s->s_volume_name)] = 0;
+ strncpy(cp, sb->s_volume_name,
+ sizeof(sb->s_volume_name));
+ cp[sizeof(sb->s_volume_name)] = 0;
ctx->device_name = cp;
}
}
@@ -810,7 +808,7 @@ restart:
* Check to see if we need to do ext3-style recovery. If so,
* do it, and then restart the fsck.
*/
- if (s->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) {
+ if (sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) {
if (ctx->options & E2F_OPT_READONLY) {
printf(_("Warning: skipping journal recovery "
"because doing a read-only filesystem "
@@ -834,19 +832,19 @@ restart:
* Check for compatibility with the feature sets. We need to
* be more stringent than ext2fs_open().
*/
- if ((s->s_feature_compat & ~EXT2_LIB_FEATURE_COMPAT_SUPP) ||
- (s->s_feature_incompat & ~EXT2_LIB_FEATURE_INCOMPAT_SUPP)) {
+ if ((sb->s_feature_compat & ~EXT2_LIB_FEATURE_COMPAT_SUPP) ||
+ (sb->s_feature_incompat & ~EXT2_LIB_FEATURE_INCOMPAT_SUPP)) {
com_err(ctx->program_name, EXT2_ET_UNSUPP_FEATURE,
"(%s)", ctx->device_name);
goto get_newer;
}
- if (s->s_feature_ro_compat & ~EXT2_LIB_FEATURE_RO_COMPAT_SUPP) {
+ if (sb->s_feature_ro_compat & ~EXT2_LIB_FEATURE_RO_COMPAT_SUPP) {
com_err(ctx->program_name, EXT2_ET_RO_UNSUPP_FEATURE,
"(%s)", ctx->device_name);
goto get_newer;
}
#ifdef ENABLE_COMPRESSION
- if (s->s_feature_incompat & EXT2_FEATURE_INCOMPAT_COMPRESSION)
+ if (sb->s_feature_incompat & EXT2_FEATURE_INCOMPAT_COMPRESSION)
com_err(ctx->program_name, 0,
_("Warning: compression support is experimental.\n"));
#endif
@@ -947,13 +945,13 @@ restart:
exit_value = FSCK_UNCORRECTED;
if (!(ctx->options & E2F_OPT_READONLY)) {
if (ext2fs_test_valid(fs)) {
- if (!(fs->super->s_state & EXT2_VALID_FS))
+ if (!(sb->s_state & EXT2_VALID_FS))
exit_value = FSCK_NONDESTRUCT;
- fs->super->s_state = EXT2_VALID_FS;
+ sb->s_state = EXT2_VALID_FS;
} else
- fs->super->s_state &= ~EXT2_VALID_FS;
- fs->super->s_mnt_count = 0;
- fs->super->s_lastcheck = time(NULL);
+ sb->s_state &= ~EXT2_VALID_FS;
+ sb->s_mnt_count = 0;
+ sb->s_lastcheck = time(NULL);
ext2fs_mark_super_dirty(fs);
}
show_stats(ctx);