• Home
  • Raw
  • Download

Lines Matching refs:fs

44 errcode_t ext2fs_create_journal_superblock(ext2_filsys fs,  in ext2fs_create_journal_superblock()  argument
54 if ((retval = ext2fs_get_mem(fs->blocksize, &jsb))) in ext2fs_create_journal_superblock()
57 memset (jsb, 0, fs->blocksize); in ext2fs_create_journal_superblock()
64 jsb->s_blocksize = htonl(fs->blocksize); in ext2fs_create_journal_superblock()
69 memcpy(jsb->s_uuid, fs->super->s_uuid, sizeof(fs->super->s_uuid)); in ext2fs_create_journal_superblock()
74 if (fs->super->s_feature_incompat & in ext2fs_create_journal_superblock()
77 if (fs->blocksize == 1024) in ext2fs_create_journal_superblock()
92 static errcode_t write_journal_file(ext2_filsys fs, char *filename, in write_journal_file() argument
100 if ((retval = ext2fs_create_journal_superblock(fs, num_blocks, flags, in write_journal_file()
112 ret_size = write(fd, buf, fs->blocksize); in write_journal_file()
117 if (ret_size != (int) fs->blocksize) in write_journal_file()
119 memset(buf, 0, fs->blocksize); in write_journal_file()
125 ret_size = write(fd, buf, fs->blocksize); in write_journal_file()
130 if (ret_size != (int) fs->blocksize) in write_journal_file()
154 errcode_t ext2fs_zero_blocks2(ext2_filsys fs, blk64_t blk, int num, in ext2fs_zero_blocks2() argument
162 if (!fs) { in ext2fs_zero_blocks2()
171 buf = malloc(fs->blocksize * STRIDE_LENGTH); in ext2fs_zero_blocks2()
174 memset(buf, 0, fs->blocksize * STRIDE_LENGTH); in ext2fs_zero_blocks2()
188 retval = io_channel_write_blk64(fs->io, blk, count, buf); in ext2fs_zero_blocks2()
201 errcode_t ext2fs_zero_blocks(ext2_filsys fs, blk_t blk, int num, in ext2fs_zero_blocks() argument
207 retval = ext2fs_zero_blocks2(fs, blk, num, &ret_blk2, ret_count); in ext2fs_zero_blocks()
227 static int mkjournal_proc(ext2_filsys fs, in mkjournal_proc() argument
243 (EXT2FS_B2C(fs, es->goal) == EXT2FS_B2C(fs, es->goal+1))) in mkjournal_proc()
246 es->goal &= ~EXT2FS_CLUSTER_MASK(fs); in mkjournal_proc()
247 retval = ext2fs_new_block2(fs, es->goal, 0, &new_blk); in mkjournal_proc()
252 ext2fs_block_alloc_stats2(fs, new_blk, +1); in mkjournal_proc()
260 retval = io_channel_write_blk64(fs->io, new_blk, 1, es->buf); in mkjournal_proc()
267 retval = ext2fs_zero_blocks2(fs, in mkjournal_proc()
281 memset(es->buf, 0, fs->blocksize); in mkjournal_proc()
299 static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino, in write_journal_inode() argument
309 if ((retval = ext2fs_create_journal_superblock(fs, num_blocks, flags, in write_journal_inode()
313 if ((retval = ext2fs_read_bitmaps(fs))) in write_journal_inode()
316 if ((retval = ext2fs_read_inode(fs, journal_ino, &inode))) in write_journal_inode()
331 if (fs->super->s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS) { in write_journal_inode()
333 if ((retval = ext2fs_write_inode(fs, journal_ino, &inode))) in write_journal_inode()
342 group = ext2fs_group_of_blk2(fs, (ext2fs_blocks_count(fs->super) - in write_journal_inode()
343 fs->super->s_first_data_block) / 2); in write_journal_inode()
344 log_flex = 1 << fs->super->s_log_groups_per_flex; in write_journal_inode()
345 if (fs->super->s_log_groups_per_flex && (group > log_flex)) { in write_journal_inode()
347 while ((group < fs->group_desc_count) && in write_journal_inode()
348 ext2fs_bg_free_blocks_count(fs, group) == 0) in write_journal_inode()
350 if (group == fs->group_desc_count) in write_journal_inode()
355 end = ((group+1) < fs->group_desc_count) ? group+1 : group; in write_journal_inode()
358 if (ext2fs_bg_free_blocks_count(fs, i) > in write_journal_inode()
359 ext2fs_bg_free_blocks_count(fs, group)) in write_journal_inode()
362 es.goal = ext2fs_group_first_block2(fs, group); in write_journal_inode()
363 retval = ext2fs_block_iterate3(fs, journal_ino, BLOCK_FLAG_APPEND, in write_journal_inode()
370 retval = ext2fs_zero_blocks2(fs, es.blk_to_zero, in write_journal_inode()
376 if ((retval = ext2fs_read_inode(fs, journal_ino, &inode))) in write_journal_inode()
379 inode_size = (unsigned long long)fs->blocksize * num_blocks; in write_journal_inode()
383 fs->super->s_feature_ro_compat |= in write_journal_inode()
385 ext2fs_iblk_add_blocks(fs, &inode, es.newblocks); in write_journal_inode()
386 inode.i_mtime = inode.i_ctime = fs->now ? fs->now : time(0); in write_journal_inode()
390 if ((retval = ext2fs_write_new_inode(fs, journal_ino, &inode))) in write_journal_inode()
394 memcpy(fs->super->s_jnl_blocks, inode.i_block, EXT2_N_BLOCKS*4); in write_journal_inode()
395 fs->super->s_jnl_blocks[15] = inode.i_size_high; in write_journal_inode()
396 fs->super->s_jnl_blocks[16] = inode.i_size; in write_journal_inode()
397 fs->super->s_jnl_backup_type = EXT3_JNL_BACKUP_BLOCKS; in write_journal_inode()
398 ext2fs_mark_super_dirty(fs); in write_journal_inode()
430 errcode_t ext2fs_add_journal_device(ext2_filsys fs, ext2_filsys journal_dev) in ext2fs_add_journal_device() argument
459 if (ntohl(jsb->s_blocksize) != (unsigned long) fs->blocksize) in ext2fs_add_journal_device()
465 if (memcmp(fs->super->s_uuid, in ext2fs_add_journal_device()
471 fs->super->s_uuid, 16); in ext2fs_add_journal_device()
479 fs->super->s_journal_inum = 0; in ext2fs_add_journal_device()
480 fs->super->s_journal_dev = st.st_rdev; in ext2fs_add_journal_device()
481 memcpy(fs->super->s_journal_uuid, jsb->s_uuid, in ext2fs_add_journal_device()
482 sizeof(fs->super->s_journal_uuid)); in ext2fs_add_journal_device()
483 fs->super->s_feature_compat |= EXT3_FEATURE_COMPAT_HAS_JOURNAL; in ext2fs_add_journal_device()
484 ext2fs_mark_super_dirty(fs); in ext2fs_add_journal_device()
493 errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t num_blocks, int flags) in ext2fs_add_journal_inode() argument
504 else if ((retval = ext2fs_check_mount_point(fs->device_name, in ext2fs_add_journal_inode()
544 if ((retval = write_journal_file(fs, jfile, num_blocks, flags))) in ext2fs_add_journal_inode()
578 !(fs->flags & EXT2_FLAG_EXCLUSIVE)) { in ext2fs_add_journal_inode()
583 if ((retval = write_journal_inode(fs, journal_ino, in ext2fs_add_journal_inode()
588 fs->super->s_journal_inum = journal_ino; in ext2fs_add_journal_inode()
589 fs->super->s_journal_dev = 0; in ext2fs_add_journal_inode()
590 memset(fs->super->s_journal_uuid, 0, in ext2fs_add_journal_inode()
591 sizeof(fs->super->s_journal_uuid)); in ext2fs_add_journal_inode()
592 fs->super->s_feature_compat |= EXT3_FEATURE_COMPAT_HAS_JOURNAL; in ext2fs_add_journal_inode()
594 ext2fs_mark_super_dirty(fs); in ext2fs_add_journal_inode()
607 ext2_filsys fs; in main() local
616 unix_io_manager, &fs); in main()
622 retval = ext2fs_add_journal_inode(fs, 1024, 0); in main()
628 retval = ext2fs_flush(fs); in main()
632 ext2fs_close(fs); in main()