Commit 6117f18
ext4: support large block size in ext4_mb_load_buddy_gfp()
Currently, ext4_mb_load_buddy_gfp() uses blocks_per_page to calculate the
folio index and offset. However, when blocksize is larger than PAGE_SIZE,
blocks_per_page becomes zero, leading to a potential division-by-zero bug.
To support BS > PS, use bytes to compute folio index and offset within
folio to get rid of blocks_per_page.
Also, if buddy and bitmap land in the same folio, we get that folio’s ref
instead of looking it up again before updating the buddy.
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Message-ID: <20251121090654.631996-12-libaokun@huaweicloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>1 parent 2a8de76 commit 6117f18
1 file changed
Lines changed: 16 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1659 | 1659 | | |
1660 | 1660 | | |
1661 | 1661 | | |
1662 | | - | |
| 1662 | + | |
1663 | 1663 | | |
1664 | 1664 | | |
1665 | 1665 | | |
1666 | 1666 | | |
1667 | 1667 | | |
1668 | 1668 | | |
1669 | | - | |
1670 | 1669 | | |
1671 | 1670 | | |
1672 | | - | |
1673 | 1671 | | |
1674 | 1672 | | |
1675 | 1673 | | |
| |||
1679 | 1677 | | |
1680 | 1678 | | |
1681 | 1679 | | |
1682 | | - | |
1683 | 1680 | | |
1684 | 1681 | | |
1685 | 1682 | | |
| |||
1707 | 1704 | | |
1708 | 1705 | | |
1709 | 1706 | | |
1710 | | - | |
1711 | | - | |
| 1707 | + | |
1712 | 1708 | | |
1713 | 1709 | | |
1714 | 1710 | | |
| |||
1740 | 1736 | | |
1741 | 1737 | | |
1742 | 1738 | | |
1743 | | - | |
| 1739 | + | |
| 1740 | + | |
1744 | 1741 | | |
1745 | 1742 | | |
1746 | 1743 | | |
| |||
1756 | 1753 | | |
1757 | 1754 | | |
1758 | 1755 | | |
1759 | | - | |
| 1756 | + | |
| 1757 | + | |
1760 | 1758 | | |
1761 | 1759 | | |
1762 | | - | |
1763 | | - | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
1764 | 1766 | | |
| 1767 | + | |
1765 | 1768 | | |
1766 | 1769 | | |
1767 | 1770 | | |
| |||
1796 | 1799 | | |
1797 | 1800 | | |
1798 | 1801 | | |
| 1802 | + | |
1799 | 1803 | | |
1800 | 1804 | | |
1801 | | - | |
| 1805 | + | |
| 1806 | + | |
1802 | 1807 | | |
1803 | 1808 | | |
1804 | 1809 | | |
| |||
0 commit comments