6 #include "ext4_config.h"
7 #include "ext4_types.h"
9 #include "ext4_errno.h"
10 #include "ext4_blockdev.h"
11 #include "ext4_crc32c.h"
12 #include "ext4_debug.h"
16 int jbd_get_fs(struct ext4_fs *fs,
17 struct jbd_fs *jbd_fs)
22 memset(jbd_fs, 0, sizeof(struct jbd_fs));
23 journal_ino = ext4_get32(&fs->sb, journal_inode_number);
25 rc = ext4_fs_get_inode_ref(fs,
31 int jbd_put_fs(struct jbd_fs *jbd_fs)
34 rc = ext4_fs_put_inode_ref(&jbd_fs->inode_ref);
38 int jbd_inode_bmap(struct jbd_fs *jbd_fs,
42 int rc = ext4_fs_get_inode_data_block_index(
50 int jbd_block_get(struct jbd_fs *jbd_fs,
51 struct ext4_block *block,
54 /* TODO: journal device. */
56 ext4_lblk_t iblock = (ext4_lblk_t)fblock;
57 rc = jbd_inode_bmap(jbd_fs, iblock,
62 struct ext4_blockdev *bdev = jbd_fs->inode_ref.fs->bdev;
63 rc = ext4_block_get(bdev, block, fblock);
67 int jbd_block_get_noread(struct jbd_fs *jbd_fs,
68 struct ext4_block *block,
71 /* TODO: journal device. */
73 ext4_lblk_t iblock = (ext4_lblk_t)fblock;
74 rc = jbd_inode_bmap(jbd_fs, iblock,
79 struct ext4_blockdev *bdev = jbd_fs->inode_ref.fs->bdev;
80 rc = ext4_block_get_noread(bdev, block, fblock);
84 int jbd_block_set(struct jbd_fs *jbd_fs,
85 struct ext4_block *block)
87 return ext4_block_set(jbd_fs->inode_ref.fs->bdev,