Lines Matching refs:area
118 struct logfs_area *area = super->s_area[a->gc_level]; in read_area() local
127 area->a_used_bytes = be32_to_cpu(a->used_bytes); in read_area()
128 area->a_written_bytes = area->a_used_bytes & writemask; in read_area()
129 area->a_segno = be32_to_cpu(a->segno); in read_area()
130 if (area->a_segno) in read_area()
131 area->a_is_open = 1; in read_area()
133 ofs = dev_ofs(sb, area->a_segno, area->a_written_bytes); in read_area()
135 return logfs_buf_recover(area, ofs, a + 1, super->s_writesize); in read_area()
137 return logfs_buf_recover(area, ofs, NULL, 0); in read_area()
358 static void journal_get_free_segment(struct logfs_area *area) in journal_get_free_segment() argument
360 struct logfs_super *super = logfs_super(area->a_sb); in journal_get_free_segment()
364 if (area->a_segno != super->s_journal_seg[i]) in journal_get_free_segment()
373 area->a_segno = super->s_journal_seg[i]; in journal_get_free_segment()
374 area->a_erase_count = ++(super->s_journal_ec[i]); in journal_get_free_segment()
375 log_journal("Journal now at %x (ec %x)\n", area->a_segno, in journal_get_free_segment()
376 area->a_erase_count); in journal_get_free_segment()
382 static void journal_get_erase_count(struct logfs_area *area) in journal_get_erase_count() argument
388 static int journal_erase_segment(struct logfs_area *area) in journal_erase_segment() argument
390 struct super_block *sb = area->a_sb; in journal_erase_segment()
398 err = logfs_erase_segment(sb, area->a_segno, 1); in journal_erase_segment()
406 u.sh.segno = cpu_to_be32(area->a_segno); in journal_erase_segment()
407 u.sh.ec = cpu_to_be32(area->a_erase_count); in journal_erase_segment()
414 ofs = dev_ofs(sb, area->a_segno, 0); in journal_erase_segment()
415 area->a_used_bytes = sizeof(u); in journal_erase_segment()
416 logfs_buf_write(area, ofs, &u, sizeof(u)); in journal_erase_segment()
553 static void write_wbuf(struct super_block *sb, struct logfs_area *area, in write_wbuf() argument
563 ofs = dev_ofs(sb, area->a_segno, in write_wbuf()
564 area->a_used_bytes & ~(super->s_writesize - 1)); in write_wbuf()
578 struct logfs_area *area = super->s_area[super->s_sum_index]; in logfs_write_area() local
583 a->used_bytes = cpu_to_be32(area->a_used_bytes); in logfs_write_area()
584 a->segno = cpu_to_be32(area->a_segno); in logfs_write_area()
586 write_wbuf(sb, area, a + 1); in logfs_write_area()
628 static s64 logfs_get_free_bytes(struct logfs_area *area, size_t *bytes, in logfs_get_free_bytes() argument
631 u32 writesize = logfs_super(area->a_sb)->s_writesize; in logfs_get_free_bytes()
635 ret = logfs_open_area(area, *bytes); in logfs_get_free_bytes()
639 ofs = area->a_used_bytes; in logfs_get_free_bytes()
640 area->a_used_bytes += *bytes; in logfs_get_free_bytes()
643 area->a_used_bytes = ALIGN(area->a_used_bytes, writesize); in logfs_get_free_bytes()
644 *bytes = area->a_used_bytes - ofs; in logfs_get_free_bytes()
647 return dev_ofs(area->a_sb, area->a_segno, ofs); in logfs_get_free_bytes()
654 struct logfs_area *area = super->s_journal_area; in logfs_write_je_buf() local
664 ofs = logfs_get_free_bytes(area, &len, must_pad); in logfs_write_je_buf()
667 logfs_buf_write(area, ofs, super->s_compressed_je, len); in logfs_write_je_buf()
737 struct logfs_area *area = super->s_journal_area; in logfs_write_anchor() local
797 logfs_sync_area(area); in logfs_write_anchor()
798 BUG_ON(area->a_used_bytes != area->a_written_bytes); in logfs_write_anchor()
808 struct logfs_area *area = super->s_journal_area; in do_logfs_journal_wl_pass() local
836 freeseg(sb, area->a_segno); in do_logfs_journal_wl_pass()
837 area->a_segno = super->s_journal_seg[0]; in do_logfs_journal_wl_pass()
838 area->a_is_open = 0; in do_logfs_journal_wl_pass()
839 area->a_used_bytes = 0; in do_logfs_journal_wl_pass()