Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fs: Switch inode_has_buffers() to take mapping_metadata_bhs

As part of a move towards placing mapping_metadata_bhs in fs-private
inode part, switch inode_has_buffers() to take mapping_metadata_bhs
and rename the function to mmb_has_buffers().

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20260326095354.16340-74-jack@suse.cz
Signed-off-by: Christian Brauner <brauner@kernel.org>

authored by

Jan Kara and committed by
Christian Brauner
025c9af1 c86f5d25

+9 -9
+7 -7
fs/buffer.c
··· 468 468 * written back and waited upon before fsync() returns. 469 469 * 470 470 * The functions mark_buffer_dirty_inode(), fsync_inode_buffers(), 471 - * inode_has_buffers() and invalidate_inode_buffers() are provided for the 471 + * mmb_has_buffers() and invalidate_inode_buffers() are provided for the 472 472 * management of a list of dependent buffers in mapping_metadata_bhs struct. 473 473 * 474 474 * The locking is a little subtle: The list of buffer heads is protected by ··· 526 526 } 527 527 } 528 528 529 - int inode_has_buffers(struct inode *inode) 529 + bool mmb_has_buffers(struct mapping_metadata_bhs *mmb) 530 530 { 531 - return !list_empty(&inode->i_data.i_metadata_bhs.list); 531 + return !list_empty(&mmb->list); 532 532 } 533 - EXPORT_SYMBOL_GPL(inode_has_buffers); 533 + EXPORT_SYMBOL_GPL(mmb_has_buffers); 534 534 535 535 /** 536 536 * sync_mapping_buffers - write out & wait upon a mapping's "associated" buffers ··· 561 561 struct blk_plug plug; 562 562 LIST_HEAD(tmp); 563 563 564 - if (list_empty(&mmb->list)) 564 + if (!mmb_has_buffers(mmb)) 565 565 return 0; 566 566 567 567 blk_start_plug(&plug); ··· 803 803 */ 804 804 void invalidate_inode_buffers(struct inode *inode) 805 805 { 806 - if (inode_has_buffers(inode)) { 807 - struct mapping_metadata_bhs *mmb = &inode->i_data.i_metadata_bhs; 806 + struct mapping_metadata_bhs *mmb = &inode->i_data.i_metadata_bhs; 808 807 808 + if (mmb_has_buffers(mmb)) { 809 809 spin_lock(&mmb->lock); 810 810 while (!list_empty(&mmb->list)) 811 811 __remove_assoc_queue(mmb, BH_ENTRY(mmb->list.next));
+1 -1
fs/ext4/inode.c
··· 3436 3436 } 3437 3437 3438 3438 /* Any metadata buffers to write? */ 3439 - if (inode_has_buffers(inode)) 3439 + if (mmb_has_buffers(&inode->i_mapping->i_metadata_bhs)) 3440 3440 return true; 3441 3441 return inode_state_read_once(inode) & I_DIRTY_DATASYNC; 3442 3442 }
+1 -1
include/linux/buffer_head.h
··· 515 515 516 516 void buffer_init(void); 517 517 bool try_to_free_buffers(struct folio *folio); 518 - int inode_has_buffers(struct inode *inode); 518 + bool mmb_has_buffers(struct mapping_metadata_bhs *mmb); 519 519 void invalidate_inode_buffers(struct inode *inode); 520 520 int sync_mapping_buffers(struct address_space *mapping); 521 521 void invalidate_bh_lrus(void);