Pull ext4 fixes from Ted Ts'o: "Bug fixes and regressions for ext4, the most serious of which is a potential deadlock during directory renames that was introduced during the merge window discovered by a combination of syzbot and lockdep" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: zero i_disksize when initializing the bootloader inode ext4: make sure fs error flag setted before clear journal error ext4: commit super block if fs record error when journal record without error ext4, jbd2: add an optimized bmap for the journal inode ext4: fix WARNING in ext4_update_inline_data ext4: move where set the MAY_INLINE_DATA flag is set ext4: Fix deadlock during directory rename ext4: Fix comment about the 64BIT feature docs: ext4: modify the group desc size to 64 ext4: fix another off-by-one fsmap error on 1k block filesystems ext4: fix RENAME_WHITEOUT handling for inline directories ext4: make kobj_type structures constant ext4: fix cgroup writeback accounting with fs-layer encryption
Showing the changes to fs/jbd2 (1 of 13 files). Show all
Unified · Split
| @@ -969,10 +969,13 @@ int jbd2_journal_bmap(journal_t *journal, unsigned long blocknr, · 968 unmodified lines | ||
| 969 | 969 | { |
| 970 | 970 | int err = 0; |
| 971 | 971 | unsigned long long ret; |
| 972 | − sector_t block = 0; | |
| 972 | + sector_t block = blocknr; | |
| 973 | 973 | |
| 974 | − if (journal->j_inode) { | |
| 975 | − block = blocknr; | |
| 974 | + if (journal->j_bmap) { | |
| 975 | + err = journal->j_bmap(journal, &block); | |
| 976 | + if (err == 0) | |
| 977 | + *retp = block; | |
| 978 | + } else if (journal->j_inode) { | |
| 976 | 979 | ret = bmap(journal->j_inode, &block); |
| 977 | 980 | |
| 978 | 981 | if (ret || !block) { |