Lines Matching refs:fs
88 static void write_image_file(ext2_filsys fs, int fd)
94 write_header(fd, NULL, fs->blocksize);
98 retval = ext2fs_image_super_write(fs, fd, 0);
105 retval = ext2fs_image_inode_write(fs, fd,
113 retval = ext2fs_image_bitmap_write(fs, fd, 0);
120 retval = ext2fs_image_bitmap_write(fs, fd, IMAGER_FLAG_INODEMAP);
131 hdr.fs_blocksize = fs->blocksize;
140 memcpy(hdr.fs_uuid, fs->super->s_uuid, sizeof(hdr.fs_uuid));
143 write_header(fd, &hdr, fs->blocksize);
166 static errcode_t meta_get_blocks(ext2_filsys fs EXT2FS_ATTR((unused)),
180 static errcode_t meta_check_directory(ext2_filsys fs EXT2FS_ATTR((unused)),
191 static errcode_t meta_read_inode(ext2_filsys fs EXT2FS_ATTR((unused)),
201 static void use_inode_shortcuts(ext2_filsys fs, int bool)
204 fs->get_blocks = meta_get_blocks;
205 fs->check_directory = meta_check_directory;
206 fs->read_inode = meta_read_inode;
209 fs->get_blocks = 0;
210 fs->check_directory = 0;
211 fs->read_inode = 0;
215 static int process_dir_block(ext2_filsys fs EXT2FS_ATTR((unused)),
232 static int process_file_block(ext2_filsys fs EXT2FS_ATTR((unused)),
245 static void mark_table_blocks(ext2_filsys fs)
250 first_block = fs->super->s_first_data_block;
259 for (j = 0; j < fs->desc_blocks; j++) {
261 ext2fs_descriptor_block_loc(fs, first_block, j));
264 for (i = 0; i < fs->group_desc_count; i++) {
268 if (fs->group_desc[i].bg_inode_table) {
269 for (j = 0, b = fs->group_desc[i].bg_inode_table;
270 j < (unsigned) fs->inode_blocks_per_group;
278 if (fs->group_desc[i].bg_block_bitmap) {
280 fs->group_desc[i].bg_block_bitmap);
286 if (fs->group_desc[i].bg_inode_bitmap) {
288 fs->group_desc[i].bg_inode_bitmap);
340 static void scramble_dir_block(ext2_filsys fs, blk_t blk, char *buf)
346 end = buf + fs->blocksize;
351 if (fs->flags & EXT2_FLAG_SWAP_BYTES)
364 if (fs->flags & EXT2_FLAG_SWAP_BYTES)
397 static void output_meta_data_blocks(ext2_filsys fs, int fd)
404 buf = malloc(fs->blocksize);
409 zero_buf = malloc(fs->blocksize);
414 memset(zero_buf, 0, fs->blocksize);
415 for (blk = 0; blk < fs->super->s_blocks_count; blk++) {
416 if ((blk >= fs->super->s_first_data_block) &&
418 retval = io_channel_read_blk(fs->io, blk, 1, buf);
425 scramble_dir_block(fs, blk, buf);
426 if ((fd != 1) && check_zero_block(buf, fs->blocksize))
428 write_block(fd, buf, sparse, fs->blocksize, blk);
434 fs->blocksize, blk);
437 sparse += fs->blocksize;
450 static void write_raw_image_file(ext2_filsys fs, int fd, int scramble_flag)
459 retval = ext2fs_allocate_block_bitmap(fs, "in-use block map",
467 retval = ext2fs_allocate_block_bitmap(fs, "scramble block map",
476 mark_table_blocks(fs);
478 retval = ext2fs_open_inode_scan(fs, 0, &scan);
484 block_buf = malloc(fs->blocksize * 3);
490 use_inode_shortcuts(fs, 1);
518 ino == fs->super->s_journal_inum) {
519 retval = ext2fs_block_iterate2(fs, ino, 0,
531 retval = ext2fs_block_iterate2(fs,
542 use_inode_shortcuts(fs, 0);
543 output_meta_data_blocks(fs, fd);
550 ext2_filsys fs;
569 io_ptr, &fs);
576 retval = ext2fs_read_bitmaps (fs);
598 image_io = fs->io;
600 ext2fs_rewrite_to_io(fs, io);
602 if (lseek(fd, fs->image_header->offset_inode, SEEK_SET) < 0) {
607 retval = ext2fs_image_inode_read(fs, fd, 0);
613 ext2fs_close (fs);
621 ext2_filsys fs;
665 unix_io_manager, &fs);
689 write_raw_image_file(fs, fd, scramble_flag);
691 write_image_file(fs, fd);
693 ext2fs_close (fs);