1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * dat.h - NILFS disk address translation.
5 * Copyright (C) 2006-2008 Nippon Telegraph and Telephone Corporation.
7 * Written by Koji Sato.
13 #include <linux/types.h>
14 #include <linux/buffer_head.h>
16 #include <linux/nilfs2_ondisk.h> /* nilfs_inode, nilfs_checkpoint */
19 struct nilfs_palloc_req
;
21 int nilfs_dat_translate(struct inode
*, __u64
, sector_t
*);
23 int nilfs_dat_prepare_alloc(struct inode
*, struct nilfs_palloc_req
*);
24 void nilfs_dat_commit_alloc(struct inode
*, struct nilfs_palloc_req
*);
25 void nilfs_dat_abort_alloc(struct inode
*, struct nilfs_palloc_req
*);
26 int nilfs_dat_prepare_start(struct inode
*, struct nilfs_palloc_req
*);
27 void nilfs_dat_commit_start(struct inode
*, struct nilfs_palloc_req
*,
29 int nilfs_dat_prepare_end(struct inode
*, struct nilfs_palloc_req
*);
30 void nilfs_dat_commit_end(struct inode
*, struct nilfs_palloc_req
*, int);
31 void nilfs_dat_abort_end(struct inode
*, struct nilfs_palloc_req
*);
32 int nilfs_dat_prepare_update(struct inode
*, struct nilfs_palloc_req
*,
33 struct nilfs_palloc_req
*);
34 void nilfs_dat_commit_update(struct inode
*, struct nilfs_palloc_req
*,
35 struct nilfs_palloc_req
*, int);
36 void nilfs_dat_abort_update(struct inode
*, struct nilfs_palloc_req
*,
37 struct nilfs_palloc_req
*);
39 int nilfs_dat_mark_dirty(struct inode
*, __u64
);
40 int nilfs_dat_freev(struct inode
*, __u64
*, size_t);
41 int nilfs_dat_move(struct inode
*, __u64
, sector_t
);
42 ssize_t
nilfs_dat_get_vinfo(struct inode
*, void *, unsigned int, size_t);
44 int nilfs_dat_read(struct super_block
*sb
, size_t entry_size
,
45 struct nilfs_inode
*raw_inode
, struct inode
**inodep
);
47 #endif /* _NILFS_DAT_H */