1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0+ */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * btnode.h - NILFS B-tree node cache 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Written by Seiji Kihara. 8*4882a593Smuzhiyun * Revised by Ryusuke Konishi. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef _NILFS_BTNODE_H 12*4882a593Smuzhiyun #define _NILFS_BTNODE_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <linux/types.h> 15*4882a593Smuzhiyun #include <linux/buffer_head.h> 16*4882a593Smuzhiyun #include <linux/fs.h> 17*4882a593Smuzhiyun #include <linux/backing-dev.h> 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun /** 20*4882a593Smuzhiyun * struct nilfs_btnode_chkey_ctxt - change key context 21*4882a593Smuzhiyun * @oldkey: old key of block's moving content 22*4882a593Smuzhiyun * @newkey: new key for block's content 23*4882a593Smuzhiyun * @bh: buffer head of old buffer 24*4882a593Smuzhiyun * @newbh: buffer head of new buffer 25*4882a593Smuzhiyun */ 26*4882a593Smuzhiyun struct nilfs_btnode_chkey_ctxt { 27*4882a593Smuzhiyun __u64 oldkey; 28*4882a593Smuzhiyun __u64 newkey; 29*4882a593Smuzhiyun struct buffer_head *bh; 30*4882a593Smuzhiyun struct buffer_head *newbh; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun void nilfs_init_btnc_inode(struct inode *btnc_inode); 34*4882a593Smuzhiyun void nilfs_btnode_cache_clear(struct address_space *); 35*4882a593Smuzhiyun struct buffer_head *nilfs_btnode_create_block(struct address_space *btnc, 36*4882a593Smuzhiyun __u64 blocknr); 37*4882a593Smuzhiyun int nilfs_btnode_submit_block(struct address_space *, __u64, sector_t, int, 38*4882a593Smuzhiyun int, struct buffer_head **, sector_t *); 39*4882a593Smuzhiyun void nilfs_btnode_delete(struct buffer_head *); 40*4882a593Smuzhiyun int nilfs_btnode_prepare_change_key(struct address_space *, 41*4882a593Smuzhiyun struct nilfs_btnode_chkey_ctxt *); 42*4882a593Smuzhiyun void nilfs_btnode_commit_change_key(struct address_space *, 43*4882a593Smuzhiyun struct nilfs_btnode_chkey_ctxt *); 44*4882a593Smuzhiyun void nilfs_btnode_abort_change_key(struct address_space *, 45*4882a593Smuzhiyun struct nilfs_btnode_chkey_ctxt *); 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #endif /* _NILFS_BTNODE_H */ 48