summaryrefslogtreecommitdiffstats
path: root/scripts/gdb/linux/mm.py
diff options
context:
space:
mode:
authorOjaswin Mujoo <ojaswin@linux.ibm.com>2025-03-28 11:54:52 +0530
committerTheodore Ts'o <tytso@mit.edu>2025-04-12 22:01:37 -0400
commitccad447a3d331a239477c281533bacb585b54a98 (patch)
tree341ed8948ef1db41439839cc21aba1eef72b2f6b /scripts/gdb/linux/mm.py
parent7e50bbb134aba1df0854f171b596b3a42d35605a (diff)
downloadlinux-ccad447a3d331a239477c281533bacb585b54a98.tar.gz
linux-ccad447a3d331a239477c281533bacb585b54a98.tar.bz2
linux-ccad447a3d331a239477c281533bacb585b54a98.zip
ext4: make block validity check resistent to sb bh corruption
Block validity checks need to be skipped in case they are called for journal blocks since they are part of system's protected zone. Currently, this is done by checking inode->ino against sbi->s_es->s_journal_inum, which is a direct read from the ext4 sb buffer head. If someone modifies this underneath us then the s_journal_inum field might get corrupted. To prevent against this, change the check to directly compare the inode with journal->j_inode. **Slight change in behavior**: During journal init path, check_block_validity etc might be called for journal inode when sbi->s_journal is not set yet. In this case we now proceed with ext4_inode_block_valid() instead of returning early. Since systems zones have not been set yet, it is okay to proceed so we can perform basic checks on the blocks. Suggested-by: Baokun Li <libaokun1@huawei.com> Reviewed-by: Baokun Li <libaokun1@huawei.com> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Zhang Yi <yi.zhang@huawei.com> Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com> Link: https://patch.msgid.link/0c06bc9ebfcd6ccfed84a36e79147bf45ff5adc1.1743142920.git.ojaswin@linux.ibm.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'scripts/gdb/linux/mm.py')
0 files changed, 0 insertions, 0 deletions