Lines Matching defs:segbuf

33 #include "segbuf.h"
397 struct nilfs_segment_buffer *segbuf = sci->sc_curseg;
404 &segbuf->sb_segsum_buffers));
418 struct nilfs_segment_buffer *segbuf = sci->sc_curseg;
426 err = nilfs_segbuf_reset(segbuf, flags, sci->sc_seg_ctime, sci->sc_cno);
430 sumbh = NILFS_SEGBUF_FIRST_BH(&segbuf->sb_segsum_buffers);
431 sumbytes = segbuf->sb_sum.sumbytes;
470 struct nilfs_segment_buffer *segbuf = sci->sc_curseg;
473 if (segbuf->sb_sum.nblocks >= segbuf->sb_rest_blocks) {
477 segbuf = sci->sc_curseg;
479 err = nilfs_segbuf_extend_payload(segbuf, &segbuf->sb_super_root);
481 segbuf->sb_sum.flags |= NILFS_SS_SR;
519 struct nilfs_segment_buffer *segbuf;
541 segbuf = sci->sc_curseg;
542 segbuf->sb_sum.sumbytes = sci->sc_binfo_ptr.offset +
543 sci->sc_super->s_blocksize * (segbuf->sb_sum.nsumblk - 1);
553 struct nilfs_segment_buffer *segbuf;
557 segbuf = sci->sc_curseg;
560 if (segbuf->sb_sum.nblocks + required + 1 > segbuf->sb_rest_blocks) {
569 err = nilfs_segbuf_extend_segsum(segbuf);
578 nilfs_segbuf_add_file_buffer(segbuf, bh);
1319 struct nilfs_segment_buffer *segbuf, *prev;
1323 segbuf = nilfs_segbuf_new(sci->sc_super);
1324 if (unlikely(!segbuf))
1328 nilfs_segbuf_map(segbuf, nilfs->ns_segnum,
1330 if (segbuf->sb_rest_blocks < NILFS_PSEG_MIN_BLOCKS) {
1332 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, 0, nilfs);
1335 segbuf->sb_sum.seg_seq = nilfs->ns_seg_seq;
1344 nilfs_segbuf_map_cont(segbuf, prev);
1345 segbuf->sb_sum.seg_seq = prev->sb_sum.seg_seq;
1348 if (segbuf->sb_rest_blocks < NILFS_PSEG_MIN_BLOCKS) {
1349 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs);
1350 segbuf->sb_sum.seg_seq++;
1355 err = nilfs_sufile_mark_dirty(nilfs->ns_sufile, segbuf->sb_segnum);
1364 nilfs_segbuf_set_next_segnum(segbuf, nextnum, nilfs);
1367 list_add_tail(&segbuf->sb_list, &sci->sc_segbufs);
1368 sci->sc_segbuf_nblocks = segbuf->sb_rest_blocks;
1372 nilfs_segbuf_free(segbuf);
1379 struct nilfs_segment_buffer *segbuf, *prev;
1399 segbuf = nilfs_segbuf_new(sci->sc_super);
1400 if (unlikely(!segbuf))
1404 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs);
1405 sci->sc_segbuf_nblocks += segbuf->sb_rest_blocks;
1412 segbuf->sb_sum.seg_seq = prev->sb_sum.seg_seq + 1;
1413 nilfs_segbuf_set_next_segnum(segbuf, nextnextnum, nilfs);
1415 list_add_tail(&segbuf->sb_list, &list);
1416 prev = segbuf;
1422 nilfs_segbuf_free(segbuf);
1424 list_for_each_entry(segbuf, &list, sb_list) {
1425 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1435 struct nilfs_segment_buffer *segbuf, *prev;
1439 segbuf = NILFS_FIRST_SEGBUF(logs);
1440 if (nilfs->ns_nextnum != segbuf->sb_nextnum) {
1441 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1444 if (atomic_read(&segbuf->sb_err)) {
1446 if (segbuf->sb_pseg_start != segbuf->sb_fseg_start)
1451 nilfs_terminate_segment(nilfs, segbuf->sb_fseg_start,
1452 segbuf->sb_fseg_end);
1457 prev = segbuf;
1458 list_for_each_entry_continue(segbuf, logs, sb_list) {
1459 if (prev->sb_nextnum != segbuf->sb_nextnum) {
1460 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1463 if (atomic_read(&segbuf->sb_err) &&
1464 segbuf->sb_segnum != nilfs->ns_nextnum)
1466 nilfs_sufile_set_error(sufile, segbuf->sb_segnum);
1467 prev = segbuf;
1474 struct nilfs_segment_buffer *segbuf;
1478 list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
1479 live_blocks = segbuf->sb_sum.nblocks +
1480 (segbuf->sb_pseg_start - segbuf->sb_fseg_start);
1481 ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum,
1490 struct nilfs_segment_buffer *segbuf;
1493 segbuf = NILFS_FIRST_SEGBUF(logs);
1494 ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum,
1495 segbuf->sb_pseg_start -
1496 segbuf->sb_fseg_start, 0);
1499 list_for_each_entry_continue(segbuf, logs, sb_list) {
1500 ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum,
1510 struct nilfs_segment_buffer *segbuf = last;
1513 list_for_each_entry_continue(segbuf, &sci->sc_segbufs, sb_list) {
1514 sci->sc_segbuf_nblocks -= segbuf->sb_rest_blocks;
1515 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1587 struct nilfs_segment_buffer *segbuf,
1592 unsigned long nfinfo = segbuf->sb_sum.nfinfo;
1605 blocknr = segbuf->sb_pseg_start + segbuf->sb_sum.nsumblk;
1606 ssp.bh = NILFS_SEGBUF_FIRST_BH(&segbuf->sb_segsum_buffers);
1609 list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) {
1610 if (bh == segbuf->sb_super_root)
1660 struct nilfs_segment_buffer *segbuf;
1663 list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
1664 err = nilfs_segctor_update_payload_blocknr(sci, segbuf, mode);
1667 nilfs_segbuf_fill_in_segsum(segbuf);
1689 struct nilfs_segment_buffer *segbuf;
1692 list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
1695 list_for_each_entry(bh, &segbuf->sb_segsum_buffers,
1708 list_for_each_entry(bh, &segbuf->sb_payload_buffers,
1710 if (bh == segbuf->sb_super_root) {
1786 struct nilfs_segment_buffer *segbuf;
1793 list_for_each_entry(segbuf, logs, sb_list) {
1794 list_for_each_entry(bh, &segbuf->sb_segsum_buffers,
1804 list_for_each_entry(bh, &segbuf->sb_payload_buffers,
1806 if (bh == segbuf->sb_super_root) {
1853 struct nilfs_segment_buffer *segbuf)
1855 nilfs->ns_segnum = segbuf->sb_segnum;
1856 nilfs->ns_nextnum = segbuf->sb_nextnum;
1857 nilfs->ns_pseg_offset = segbuf->sb_pseg_start - segbuf->sb_fseg_start
1858 + segbuf->sb_sum.nblocks;
1859 nilfs->ns_seg_seq = segbuf->sb_sum.seg_seq;
1860 nilfs->ns_ctime = segbuf->sb_sum.ctime;
1865 struct nilfs_segment_buffer *segbuf;
1870 list_for_each_entry(segbuf, &sci->sc_write_logs, sb_list) {
1873 list_for_each_entry(bh, &segbuf->sb_segsum_buffers,
1894 list_for_each_entry(bh, &segbuf->sb_payload_buffers,
1902 if (bh == segbuf->sb_super_root) {
1919 if (!nilfs_segbuf_simplex(segbuf)) {
1920 if (segbuf->sb_sum.flags & NILFS_SS_LOGBGN) {
1924 if (segbuf->sb_sum.flags & NILFS_SS_LOGEND)
1946 segbuf = NILFS_LAST_SEGBUF(&sci->sc_write_logs);
1947 nilfs_set_next_segment(nilfs, segbuf);
1951 nilfs_set_last_segment(nilfs, segbuf->sb_pseg_start,
1952 segbuf->sb_sum.seg_seq, nilfs->ns_cno++);