diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-04-13 12:46:42 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-04-13 12:46:42 -0700 |
| commit | fc825e513cd494cfcbeb47acf5738fe64f3a9051 (patch) | |
| tree | 3f3fde91e0f50331d8558bb66fd3213272bf4818 /mm | |
| parent | 2802f9407299c8e17bb8e1311e2ea7816f550649 (diff) | |
| parent | 6e22726900ea54d72cbc6f053c0fa581de023de6 (diff) | |
| download | lwn-fc825e513cd494cfcbeb47acf5738fe64f3a9051.tar.gz lwn-fc825e513cd494cfcbeb47acf5738fe64f3a9051.zip | |
Merge tag 'vfs-7.1-rc1.bh.metadata' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs buffer_head updates from Christian Brauner:
"This cleans up the mess that has accumulated over the years in
metadata buffer_head tracking for inodes.
It moves the tracking into dedicated structure in filesystem-private
part of the inode (so that we don't use private_list, private_data,
and private_lock in struct address_space), and also moves couple other
users of private_data and private_list so these are removed from
struct address_space saving 3 longs in struct inode for 99% of inodes"
* tag 'vfs-7.1-rc1.bh.metadata' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (42 commits)
fs: Drop i_private_list from address_space
fs: Drop mapping_metadata_bhs from address space
ext4: Track metadata bhs in fs-private inode part
minix: Track metadata bhs in fs-private inode part
udf: Track metadata bhs in fs-private inode part
fat: Track metadata bhs in fs-private inode part
bfs: Track metadata bhs in fs-private inode part
affs: Track metadata bhs in fs-private inode part
ext2: Track metadata bhs in fs-private inode part
fs: Provide functions for handling mapping_metadata_bhs directly
fs: Switch inode_has_buffers() to take mapping_metadata_bhs
fs: Make bhs point to mapping_metadata_bhs
fs: Move metadata bhs tracking to a separate struct
fs: Fold fsync_buffers_list() into sync_mapping_buffers()
fs: Drop osync_buffers_list()
kvm: Use private inode list instead of i_private_list
fs: Remove i_private_data
aio: Stop using i_private_data and i_private_lock
hugetlbfs: Stop using i_private_data
fs: Stop using i_private_data for metadata bh tracking
...
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/hugetlb.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 327eaa4074d3..2ced2c8633d8 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1157,15 +1157,7 @@ void resv_map_release(struct kref *ref) static inline struct resv_map *inode_resv_map(struct inode *inode) { - /* - * At inode evict time, i_mapping may not point to the original - * address space within the inode. This original address space - * contains the pointer to the resv_map. So, always use the - * address space embedded within the inode. - * The VERY common case is inode->mapping == &inode->i_data but, - * this may not be true for device special inodes. - */ - return (struct resv_map *)(&inode->i_data)->i_private_data; + return HUGETLBFS_I(inode)->resv_map; } static struct resv_map *vma_resv_map(struct vm_area_struct *vma) |
