Lines Matching refs:fs
61 errcode_t ext2fs_image_inode_write(ext2_filsys fs, int fd, int flags)
70 buf = malloc(fs->blocksize * BUF_BLOCKS);
74 for (group = 0; group < fs->group_desc_count; group++) {
75 blk = ext2fs_inode_table_loc(fs, (unsigned)group);
80 left = fs->inode_blocks_per_group;
85 retval = io_channel_read_blk64(fs->io, blk, c, buf);
95 if (check_zero_block(cp, fs->blocksize)) {
99 cp += fs->blocksize;
100 r = lseek(fd, fs->blocksize, SEEK_CUR);
109 if (check_zero_block(cp + d*fs->blocksize, fs->blocksize))
113 actual = write(fd, cp, fs->blocksize * d);
118 if (actual != (ssize_t) (fs->blocksize * d)) {
124 cp += fs->blocksize * d;
139 errcode_t ext2fs_image_inode_read(ext2_filsys fs, int fd,
148 buf = malloc(fs->blocksize * BUF_BLOCKS);
152 for (group = 0; group < fs->group_desc_count; group++) {
153 blk = ext2fs_inode_table_loc(fs, (unsigned)group);
158 left = fs->inode_blocks_per_group;
163 actual = read(fd, buf, fs->blocksize * c);
168 if (actual != (ssize_t) (fs->blocksize * c)) {
172 retval = io_channel_write_blk64(fs->io, blk, c, buf);
180 retval = ext2fs_flush_icache(fs);
190 errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd,
197 buf = malloc(fs->blocksize);
204 memset(buf, 0, fs->blocksize);
205 memcpy(buf, fs->super, SUPERBLOCK_SIZE);
206 actual = write(fd, buf, fs->blocksize);
211 if (actual != (ssize_t) fs->blocksize) {
219 cp = (char *) fs->group_desc;
220 actual = write(fd, cp, fs->blocksize * fs->desc_blocks);
225 if (actual != (ssize_t) (fs->blocksize * fs->desc_blocks)) {
240 errcode_t ext2fs_image_super_read(ext2_filsys fs, int fd,
247 size = fs->blocksize * (fs->group_desc_count + 1);
268 memcpy(fs->super, buf, SUPERBLOCK_SIZE);
270 memcpy(fs->group_desc, buf + fs->blocksize,
271 fs->blocksize * fs->group_desc_count);
283 errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
293 if (!fs->inode_map) {
294 retval = ext2fs_read_inode_bitmap(fs);
298 bmap = fs->inode_map;
300 cnt = EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count;
301 size = (EXT2_INODES_PER_GROUP(fs->super) / 8);
303 if (!fs->block_map) {
304 retval = ext2fs_read_block_bitmap(fs);
308 bmap = fs->block_map;
309 itr = fs->super->s_first_data_block;
310 cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
311 size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
313 total_size = size * fs->group_desc_count;
335 size = total_size % fs->blocksize;
338 size = fs->blocksize - size;
358 errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
368 if (!fs->inode_map) {
369 retval = ext2fs_read_inode_bitmap(fs);
373 bmap = fs->inode_map;
375 cnt = EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count;
376 size = (EXT2_INODES_PER_GROUP(fs->super) / 8);
378 if (!fs->block_map) {
379 retval = ext2fs_read_block_bitmap(fs);
383 bmap = fs->block_map;
384 itr = fs->super->s_first_data_block;
385 cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
386 size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;