[PATCH 25/32] bfs: Track metadata bhs in fs-private inode part
Jan Kara <[email protected]> Tue, 3 Mar 2026 11:34:14 +0100
| Newsgroups | gmane.linux.kernel.aio.general,gmane.linux.file-systems,gmane.comp.file-systems.ext4,gmane.linux.kernel.mm |
|---|---|
| Message-ID | <[email protected]> |
Track metadata bhs for an inode in fs-private part of the inode. Signed-off-by: Jan Kara <[email protected]> --- fs/bfs/bfs.h | 2 ++ fs/bfs/dir.c | 1 + fs/bfs/file.c | 4 +++- fs/bfs/inode.c | 7 +++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/fs/bfs/bfs.h b/fs/bfs/bfs.h index 606f9378b2f0..5fadb6e860f1 100644 --- a/fs/bfs/bfs.h +++ b/fs/bfs/bfs.h @@ -35,6 +35,7 @@ struct bfs_inode_info { unsigned long i_dsk_ino; /* inode number from the disk, can be 0 */ unsigned long i_sblock; unsigned long i_eblock; + struct mapping_metadata_bhs i_metadata_bhs; struct inode vfs_inode; }; @@ -55,6 +56,7 @@ static inline struct bfs_inode_info *BFS_I(struct inode *inode) /* inode.c */ extern struct inode *bfs_iget(struct super_block *sb, unsigned long ino); extern void bfs_dump_imap(const char *, struct super_block *); +struct mapping_metadata_bhs *bfs_get_metadata_bhs(struct inode *inode); /* file.c */ extern const struct inode_operations bfs_file_inops; diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c index c375e22c4c0c..30529f476582 100644 --- a/fs/bfs/dir.c +++ b/fs/bfs/dir.c @@ -262,6 +262,7 @@ const struct inode_operations bfs_dir_inops = { .link = bfs_link, .unlink = bfs_unlink, .rename = bfs_rename, + .get_metadata_bhs = bfs_get_metadata_bhs, }; static int bfs_add_entry(struct inode *dir, const struct qstr *child, int ino) diff --git a/fs/bfs/file.c b/fs/bfs/file.c index d33d6bde992b..335ab07e37fe 100644 --- a/fs/bfs/file.c +++ b/fs/bfs/file.c @@ -200,4 +200,6 @@ const struct address_space_operations bfs_aops = { .bmap = bfs_bmap, }; -const struct inode_operations bfs_file_inops; +const struct inode_operations bfs_file_inops = { + .get_metadata_bhs = bfs_get_metadata_bhs, +}; diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index e0e50a9dbe9c..f1a392394a23 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c @@ -259,6 +259,8 @@ static struct inode *bfs_alloc_inode(struct super_block *sb) bi = alloc_inode_sb(sb, bfs_inode_cachep, GFP_KERNEL); if (!bi) return NULL; + mmb_init(&bi->i_metadata_bhs); + return &bi->vfs_inode; } @@ -296,6 +298,11 @@ static void destroy_inodecache(void) kmem_cache_destroy(bfs_inode_cachep); } +struct mapping_metadata_bhs *bfs_get_metadata_bhs(struct inode *inode) +{ + return &BFS_I(inode)->i_metadata_bhs; +} + static const struct super_operations bfs_sops = { .alloc_inode = bfs_alloc_inode, .free_inode = bfs_free_inode, -- 2.51.0 -- To unsubscribe, send a message with 'unsubscribe linux-aio' in the body to [email protected]. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: <a href=mailto:"[email protected]">[email protected]</a>