mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-30 05:18:31 -05:00
improved the printing of error messages
This commit is contained in:
@@ -105,8 +105,6 @@ Ext2RecoverJournal(
|
|||||||
journal_t * journal = NULL;
|
journal_t * journal = NULL;
|
||||||
struct ext3_super_block *esb;
|
struct ext3_super_block *esb;
|
||||||
|
|
||||||
DbgPrint("Ext2RecoverJournal begin\n");
|
|
||||||
|
|
||||||
ExAcquireResourceExclusiveLite(&Vcb->MainResource, TRUE);
|
ExAcquireResourceExclusiveLite(&Vcb->MainResource, TRUE);
|
||||||
|
|
||||||
/* check journal inode number */
|
/* check journal inode number */
|
||||||
@@ -130,7 +128,7 @@ Ext2RecoverJournal(
|
|||||||
|
|
||||||
/* initialzation succeeds ? */
|
/* initialzation succeeds ? */
|
||||||
if (!journal) {
|
if (!journal) {
|
||||||
DbgPrint("jbd2_journal_init_inode failed\n");
|
DEBUG(DL_ERR, ( "jbd2_journal_init_inode failed\n"));
|
||||||
iput(ji);
|
iput(ji);
|
||||||
rc = -8;
|
rc = -8;
|
||||||
goto errorout;
|
goto errorout;
|
||||||
@@ -141,8 +139,8 @@ Ext2RecoverJournal(
|
|||||||
rc = jbd2_journal_load(journal);
|
rc = jbd2_journal_load(journal);
|
||||||
|
|
||||||
if (0 != rc) {
|
if (0 != rc) {
|
||||||
DbgPrint("Ext2Fsd: recover_journal: failed "
|
DEBUG(DL_ERR, ( "Ext2Fsd: recover_journal: failed "
|
||||||
"to recover journal data. rc=%d\n", rc);
|
"to recover journal data. rc=%d\n", rc));
|
||||||
rc = -9;
|
rc = -9;
|
||||||
//goto errorout;
|
//goto errorout;
|
||||||
}
|
}
|
||||||
@@ -180,7 +178,5 @@ errorout:
|
|||||||
|
|
||||||
ExReleaseResourceLite(&Vcb->MainResource);
|
ExReleaseResourceLite(&Vcb->MainResource);
|
||||||
|
|
||||||
DbgPrint("Ext2RecoverJournal end\n");
|
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ int ext4_inode_csum_verify(struct inode *inode, struct ext4_inode *raw,
|
|||||||
calculated &= 0xFFFF;
|
calculated &= 0xFFFF;
|
||||||
|
|
||||||
if (provided != calculated)
|
if (provided != calculated)
|
||||||
DbgPrint("checksum verify failed on inode %u: %lx != %lx\n", inode->i_ino, provided, calculated);
|
DEBUG(DL_ERR, ( "checksum verify failed on inode %u: %lx != %lx\n", inode->i_ino, provided, calculated));
|
||||||
|
|
||||||
return provided == calculated;
|
return provided == calculated;
|
||||||
}
|
}
|
||||||
@@ -437,7 +437,6 @@ void ext4_inode_csum_set(struct inode *inode, struct ext4_inode *raw,
|
|||||||
if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE &&
|
if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE &&
|
||||||
offsetof(struct ext4_inode, i_checksum_hi) + sizeof(raw->i_checksum_hi) <= EXT4_GOOD_OLD_INODE_SIZE + raw->i_extra_isize)
|
offsetof(struct ext4_inode, i_checksum_hi) + sizeof(raw->i_checksum_hi) <= EXT4_GOOD_OLD_INODE_SIZE + raw->i_extra_isize)
|
||||||
raw->i_checksum_hi = cpu_to_le16(csum >> 16);
|
raw->i_checksum_hi = cpu_to_le16(csum >> 16);
|
||||||
//DbgPrint("set checksum on inode %u: csum == %lx\n", inode->i_ino, csum);
|
|
||||||
ext4_inode_csum_verify(inode, raw, unused);
|
ext4_inode_csum_verify(inode, raw, unused);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -547,7 +546,7 @@ int ext4_dirent_csum_verify(struct inode *inode, struct ext4_dir_entry *dirent)
|
|||||||
|
|
||||||
t = get_dirent_tail(inode, dirent);
|
t = get_dirent_tail(inode, dirent);
|
||||||
if (!t) {
|
if (!t) {
|
||||||
DbgPrint("No space for directory leaf checksum. Please run e2fsck -D.\n");
|
DEBUG(DL_ERR, ( "No space for directory leaf checksum. Please run e2fsck -D.\n"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -568,7 +567,7 @@ void ext4_dirent_csum_set(struct inode *inode,
|
|||||||
|
|
||||||
t = get_dirent_tail(inode, dirent);
|
t = get_dirent_tail(inode, dirent);
|
||||||
if (!t) {
|
if (!t) {
|
||||||
DbgPrint("No space for directory leaf checksum. Please run e2fsck -D.\n");
|
DEBUG(DL_ERR, ( "No space for directory leaf checksum. Please run e2fsck -D.\n"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -633,14 +632,14 @@ int ext4_dx_csum_verify(struct inode *inode,
|
|||||||
|
|
||||||
c = get_dx_countlimit(inode, dirent, &count_offset);
|
c = get_dx_countlimit(inode, dirent, &count_offset);
|
||||||
if (!c) {
|
if (!c) {
|
||||||
DbgPrint("dir seems corrupt? Run e2fsck -D.");
|
DEBUG(DL_ERR, ( "dir seems corrupt? Run e2fsck -D."));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
limit = le16_to_cpu(c->limit);
|
limit = le16_to_cpu(c->limit);
|
||||||
count = le16_to_cpu(c->count);
|
count = le16_to_cpu(c->count);
|
||||||
if (count_offset + (limit * sizeof(struct dx_entry)) >
|
if (count_offset + (limit * sizeof(struct dx_entry)) >
|
||||||
EXT4_BLOCK_SIZE(inode->i_sb) - sizeof(struct dx_tail)) {
|
EXT4_BLOCK_SIZE(inode->i_sb) - sizeof(struct dx_tail)) {
|
||||||
DbgPrint("warn_no_space_for_csum in inode\n");
|
DEBUG(DL_ERR, ( "warn_no_space_for_csum in inode\n"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
t = (struct dx_tail *)(((struct dx_entry *)c) + limit);
|
t = (struct dx_tail *)(((struct dx_entry *)c) + limit);
|
||||||
@@ -659,14 +658,14 @@ void ext4_dx_csum_set(struct inode *inode, struct ext4_dir_entry *dirent)
|
|||||||
|
|
||||||
c = get_dx_countlimit(inode, dirent, &count_offset);
|
c = get_dx_countlimit(inode, dirent, &count_offset);
|
||||||
if (!c) {
|
if (!c) {
|
||||||
DbgPrint("dir seems corrupt? Run e2fsck -D.");
|
DEBUG(DL_ERR, ( "dir seems corrupt? Run e2fsck -D."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
limit = le16_to_cpu(c->limit);
|
limit = le16_to_cpu(c->limit);
|
||||||
count = le16_to_cpu(c->count);
|
count = le16_to_cpu(c->count);
|
||||||
if (count_offset + (limit * sizeof(struct dx_entry)) >
|
if (count_offset + (limit * sizeof(struct dx_entry)) >
|
||||||
EXT4_BLOCK_SIZE(inode->i_sb) - sizeof(struct dx_tail)) {
|
EXT4_BLOCK_SIZE(inode->i_sb) - sizeof(struct dx_tail)) {
|
||||||
DbgPrint("warn_no_space_for_csum in inode\n");
|
DEBUG(DL_ERR, ( "warn_no_space_for_csum in inode\n"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
t = (struct dx_tail *)(((struct dx_entry *)c) + limit);
|
t = (struct dx_tail *)(((struct dx_entry *)c) + limit);
|
||||||
|
|||||||
@@ -2225,7 +2225,7 @@ Ext2MountVolume (IN PEXT2_IRP_CONTEXT IrpContext)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!ext4_superblock_csum_verify(&Vcb->sb, Ext2Sb)) {
|
if (!ext4_superblock_csum_verify(&Vcb->sb, Ext2Sb)) {
|
||||||
DbgPrint("Found ext4 filesystem with invalid superblock checksum. Run e2fsck?\n");
|
DEBUG(DL_ERR, ( "Found ext4 filesystem with invalid superblock checksum. Run e2fsck?\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
SetLongFlag(Vcb->Flags, VCB_MOUNTED);
|
SetLongFlag(Vcb->Flags, VCB_MOUNTED);
|
||||||
|
|||||||
@@ -373,7 +373,7 @@ Ext2QueryRegistrySettings(IN PUNICODE_STRING RegistryPath)
|
|||||||
DEBUG(DL_ERR, ( "Ext2QueryParameters: Wrong HidingPrefix ...\n"));
|
DEBUG(DL_ERR, ( "Ext2QueryParameters: Wrong HidingPrefix ...\n"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
DEBUG(DL_ERR, ( "Ext2QueryParameters: HidingPrefix not specified.\n"));
|
DEBUG(DL_INF, ( "Ext2QueryParameters: HidingPrefix not specified.\n"));
|
||||||
}
|
}
|
||||||
Ext2Global->sHidingPrefix[HIDINGPAT_LEN - 1] = 0;
|
Ext2Global->sHidingPrefix[HIDINGPAT_LEN - 1] = 0;
|
||||||
|
|
||||||
@@ -397,7 +397,7 @@ Ext2QueryRegistrySettings(IN PUNICODE_STRING RegistryPath)
|
|||||||
DEBUG(DL_ERR, ( "Ext2QueryParameters: Wrong HidingSuffix ...\n"));
|
DEBUG(DL_ERR, ( "Ext2QueryParameters: Wrong HidingSuffix ...\n"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
DEBUG(DL_ERR, ( "Ext2QueryParameters: HidingSuffix not specified.\n"));
|
DEBUG(DL_INF, ( "Ext2QueryParameters: HidingSuffix not specified.\n"));
|
||||||
}
|
}
|
||||||
Ext2Global->sHidingPrefix[HIDINGPAT_LEN - 1] = 0;
|
Ext2Global->sHidingPrefix[HIDINGPAT_LEN - 1] = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ About
|
|||||||
still install the oficial release and then copy this driver over the old in \windows\system32\drivers.
|
still install the oficial release and then copy this driver over the old in \windows\system32\drivers.
|
||||||
The current status of the development is that all metadata checksums is implemented and jbd2 is
|
The current status of the development is that all metadata checksums is implemented and jbd2 is
|
||||||
ported to support 64-bit blocknumbers.
|
ported to support 64-bit blocknumbers.
|
||||||
|
The driver is now ready to be tested!
|
||||||
This work is dedicated to my mother Berit Ingegerd Branten.
|
This work is dedicated to my mother Berit Ingegerd Branten.
|
||||||
Bo Branten <bosse@acc.umu.se>
|
Bo Branten <bosse@acc.umu.se>
|
||||||
|
|
||||||
@@ -35,6 +36,9 @@ Active Developers
|
|||||||
|
|
||||||
KaHo Ng : http://github.com/ngkaho1234
|
KaHo Ng : http://github.com/ngkaho1234
|
||||||
|
|
||||||
|
Bo Branten : http://github.com/bobranten
|
||||||
|
http://www.acc.umu.se/~bosse
|
||||||
|
|
||||||
|
|
||||||
Supported Features by Ext3Fsd
|
Supported Features by Ext3Fsd
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user