mirror of
https://github.com/bobranten/Ext4Fsd.git
synced 2025-10-30 05:18:31 -05:00
fix for dir entry rec len when using checksums
This commit is contained in:
@@ -663,7 +663,7 @@ NTSTATUS Ext2AddDotEntries(struct ext2_icb *icb, struct inode *dir,
|
|||||||
de = (struct ext3_dir_entry_2 *)
|
de = (struct ext3_dir_entry_2 *)
|
||||||
((char *) de + le16_to_cpu(de->rec_len));
|
((char *) de + le16_to_cpu(de->rec_len));
|
||||||
de->inode = cpu_to_le32(dir->i_ino);
|
de->inode = cpu_to_le32(dir->i_ino);
|
||||||
de->rec_len = cpu_to_le16(inode->i_sb->s_blocksize-EXT3_DIR_REC_LEN(1));
|
de->rec_len = cpu_to_le16(inode->i_sb->s_blocksize-EXT3_DIR_REC_LEN(1)-csum_size);
|
||||||
de->name_len = 2;
|
de->name_len = 2;
|
||||||
strcpy (de->name, "..");
|
strcpy (de->name, "..");
|
||||||
ext3_set_de_type(inode->i_sb, de, S_IFDIR);
|
ext3_set_de_type(inode->i_sb, de, S_IFDIR);
|
||||||
@@ -672,6 +672,7 @@ NTSTATUS Ext2AddDotEntries(struct ext2_icb *icb, struct inode *dir,
|
|||||||
t = EXT4_DIRENT_TAIL(bh->b_data, blocksize);
|
t = EXT4_DIRENT_TAIL(bh->b_data, blocksize);
|
||||||
initialize_dirent_tail(t, blocksize);
|
initialize_dirent_tail(t, blocksize);
|
||||||
}
|
}
|
||||||
|
ext4_dirent_csum_set(inode, (struct ext4_dir_entry *)bh->b_data);
|
||||||
set_buffer_dirty(bh);
|
set_buffer_dirty(bh);
|
||||||
ext3_mark_inode_dirty(icb, inode);
|
ext3_mark_inode_dirty(icb, inode);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user