Home | History | Annotate | Download | only in ext2fs

Lines Matching refs:fs

44 errcode_t ext2fs_create_journal_superblock(ext2_filsys fs,
54 if ((retval = ext2fs_get_mem(fs->blocksize, &jsb)))
57 memset (jsb, 0, fs->blocksize);
64 jsb->s_blocksize = htonl(fs->blocksize);
69 memcpy(jsb->s_uuid, fs->super->s_uuid, sizeof(fs->super->s_uuid));
74 if (fs->super->s_feature_incompat &
77 if (fs->blocksize == 1024)
92 static errcode_t write_journal_file(ext2_filsys fs, char *filename,
100 if ((retval = ext2fs_create_journal_superblock(fs, size, flags, &buf)))
111 ret_size = write(fd, buf, fs->blocksize);
116 if (ret_size != (int) fs->blocksize)
118 memset(buf, 0, fs->blocksize);
121 ret_size = write(fd, buf, fs->blocksize);
126 if (ret_size != (int) fs->blocksize)
147 static int mkjournal_proc(ext2_filsys fs,
163 retval = ext2fs_new_block(fs, last_blk, 0, &new_blk);
172 retval = io_channel_write_blk(fs->io, new_blk, 1, es->buf);
175 memset(es->buf, 0, fs->blocksize);
183 ext2fs_block_alloc_stats(fs, new_blk, +1);
195 static errcode_t write_journal_inode(ext2_filsys fs, ext2_ino_t journal_ino,
203 if ((retval = ext2fs_create_journal_superblock(fs, size, flags, &buf)))
206 if ((retval = ext2fs_read_bitmaps(fs)))
209 if ((retval = ext2fs_read_inode(fs, journal_ino, &inode)))
220 retval = ext2fs_block_iterate2(fs, journal_ino, BLOCK_FLAG_APPEND,
227 if ((retval = ext2fs_read_inode(fs, journal_ino, &inode)))
230 inode.i_size += fs->blocksize * size;
231 inode.i_blocks += (fs->blocksize / 512) * es.newblocks;
232 inode.i_mtime = inode.i_ctime = fs->now ? fs->now : time(0);
236 if ((retval = ext2fs_write_inode(fs, journal_ino, &inode)))
240 memcpy(fs->super->s_jnl_blocks, inode.i_block, EXT2_N_BLOCKS*4);
241 fs->super->s_jnl_blocks[16] = inode.i_size;
242 fs->super->s_jnl_backup_type = EXT3_JNL_BACKUP_BLOCKS;
243 ext2fs_mark_super_dirty(fs);
273 errcode_t ext2fs_add_journal_device(ext2_filsys fs, ext2_filsys journal_dev)
301 if (ntohl(jsb->s_blocksize) != (unsigned long) fs->blocksize)
307 if (memcmp(fs->super->s_uuid,
313 fs->super->s_uuid, 16);
321 fs->super->s_journal_inum = 0;
322 fs->super->s_journal_dev = st.st_rdev;
323 memcpy(fs->super->s_journal_uuid, jsb->s_uuid,
324 sizeof(fs->super->s_journal_uuid));
325 fs->super->s_feature_compat |= EXT3_FEATURE_COMPAT_HAS_JOURNAL;
326 ext2fs_mark_super_dirty(fs);
335 errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t size, int flags)
344 if ((retval = ext2fs_check_mount_point(fs->device_name, &mount_flags,
372 if ((retval = write_journal_file(fs, jfile, size, flags)))
394 !(fs->flags & EXT2_FLAG_EXCLUSIVE)) {
399 if ((retval = write_journal_inode(fs, journal_ino,
404 fs->super->s_journal_inum = journal_ino;
405 fs->super->s_journal_dev = 0;
406 memset(fs->super->s_journal_uuid, 0,
407 sizeof(fs->super->s_journal_uuid));
408 fs->super->s_feature_compat |= EXT3_FEATURE_COMPAT_HAS_JOURNAL;
410 ext2fs_mark_super_dirty(fs);
423 ext2_filsys fs;
432 unix_io_manager, &fs);
438 retval = ext2fs_add_journal_inode(fs, 1024);
444 retval = ext2fs_flush(fs);
448 ext2fs_close(fs);