Lines Matching refs:volume

82 void ext2_read_block(ext2_VOLUME* volume, unsigned int fsblock)  in ext2_read_block()  argument
86 if (fsblock == volume->current) in ext2_read_block()
89 volume->current = fsblock; in ext2_read_block()
90 offset = fsblock * EXT2_BLOCK_SIZE(volume->super); in ext2_read_block()
92 seek_io(volume->fd, offset); in ext2_read_block()
93 read_io(volume->fd, volume->buffer, EXT2_BLOCK_SIZE(volume->super)); in ext2_read_block()
96 void ext2_get_group_desc(ext2_VOLUME* volume, in ext2_get_group_desc() argument
102 block = 1 + volume->super->s_first_data_block; in ext2_get_group_desc()
103 block += group_id / EXT2_DESC_PER_BLOCK(volume->super); in ext2_get_group_desc()
104 ext2_read_block(volume, block); in ext2_get_group_desc()
106 offset = group_id % EXT2_DESC_PER_BLOCK(volume->super); in ext2_get_group_desc()
109 le_gdp = (struct ext2_group_desc *)(volume->buffer + offset); in ext2_get_group_desc()
119 int ext2_get_inode(ext2_VOLUME* volume, in ext2_get_inode() argument
131 group_id = ino / EXT2_INODES_PER_GROUP(volume->super); in ext2_get_inode()
132 ext2_get_group_desc(volume, group_id, &desc); in ext2_get_inode()
134 ino %= EXT2_INODES_PER_GROUP(volume->super); in ext2_get_inode()
137 block += ino / (EXT2_BLOCK_SIZE(volume->super) / in ext2_get_inode()
138 EXT2_INODE_SIZE(volume->super)); in ext2_get_inode()
139 ext2_read_block(volume, block); in ext2_get_inode()
141 offset = ino % (EXT2_BLOCK_SIZE(volume->super) / in ext2_get_inode()
142 EXT2_INODE_SIZE(volume->super)); in ext2_get_inode()
143 offset *= EXT2_INODE_SIZE(volume->super); in ext2_get_inode()
145 le_inode = (struct ext2_inode *)(volume->buffer + offset); in ext2_get_inode()
177 unsigned int ext2_get_block_addr(ext2_VOLUME* volume, struct ext2_inode *inode, in ext2_get_block_addr() argument
194 addr_per_block = EXT2_ADDR_PER_BLOCK (volume->super); in ext2_get_block_addr()
196 ext2_read_block(volume, inode->i_block[EXT2_IND_BLOCK]); in ext2_get_block_addr()
197 physical = __le32_to_cpu(((unsigned int *)volume->buffer)[logical]); in ext2_get_block_addr()
206 ext2_read_block(volume, inode->i_block[EXT2_DIND_BLOCK]); in ext2_get_block_addr()
207 physical = __le32_to_cpu(((unsigned int *)volume->buffer) in ext2_get_block_addr()
209 ext2_read_block(volume, physical); in ext2_get_block_addr()
210 physical = __le32_to_cpu(((unsigned int *)volume->buffer) in ext2_get_block_addr()
218 ext2_read_block(volume, inode->i_block[EXT2_DIND_BLOCK]); in ext2_get_block_addr()
219 physical = __le32_to_cpu(((unsigned int *)volume->buffer) in ext2_get_block_addr()
221 ext2_read_block(volume, physical); in ext2_get_block_addr()
223 physical = __le32_to_cpu(((unsigned int *)volume->buffer)[logical / addr_per_block]); in ext2_get_block_addr()
224 ext2_read_block(volume, physical); in ext2_get_block_addr()
225 physical = __le32_to_cpu(((unsigned int *)volume->buffer)[logical % addr_per_block]); in ext2_get_block_addr()
229 int ext2_read_data(ext2_VOLUME* volume, struct ext2_inode *inode, in ext2_read_data() argument
233 int blocksize = EXT2_BLOCK_SIZE(volume->super); in ext2_read_data()
248 physical = ext2_get_block_addr(volume, inode, logical); in ext2_read_data()
249 ext2_read_block(volume, physical); in ext2_read_data()
252 memcpy(buffer, volume->buffer + shift, length); in ext2_read_data()
256 memcpy(buffer, volume->buffer + shift, read); in ext2_read_data()
264 physical = ext2_get_block_addr(volume, inode, logical); in ext2_read_data()
265 ext2_read_block(volume, physical); in ext2_read_data()
268 memcpy(buffer, volume->buffer, length); in ext2_read_data()
272 memcpy(buffer, volume->buffer, blocksize); in ext2_read_data()
283 off_t ext2_dir_entry(ext2_VOLUME *volume, struct ext2_inode *inode, in ext2_dir_entry() argument
288 ret = ext2_read_data(volume, inode, index, in ext2_dir_entry()
298 unsigned int ext2_seek_name(ext2_VOLUME *volume, const char *name) in ext2_seek_name() argument
312 ret = ext2_get_inode(volume, ino, &inode); in ext2_seek_name()
317 index = ext2_dir_entry(volume, &inode, index, &entry); in ext2_seek_name()