Lines Matching defs:segbuf
33 #include "segbuf.h"
392 struct nilfs_segment_buffer *segbuf = sci->sc_curseg;
399 &segbuf->sb_segsum_buffers));
413 struct nilfs_segment_buffer *segbuf = sci->sc_curseg;
421 err = nilfs_segbuf_reset(segbuf, flags, sci->sc_seg_ctime, sci->sc_cno);
425 sumbh = NILFS_SEGBUF_FIRST_BH(&segbuf->sb_segsum_buffers);
426 sumbytes = segbuf->sb_sum.sumbytes;
465 struct nilfs_segment_buffer *segbuf = sci->sc_curseg;
468 if (segbuf->sb_sum.nblocks >= segbuf->sb_rest_blocks) {
472 segbuf = sci->sc_curseg;
474 err = nilfs_segbuf_extend_payload(segbuf, &segbuf->sb_super_root);
476 segbuf->sb_sum.flags |= NILFS_SS_SR;
514 struct nilfs_segment_buffer *segbuf;
536 segbuf = sci->sc_curseg;
537 segbuf->sb_sum.sumbytes = sci->sc_binfo_ptr.offset +
538 sci->sc_super->s_blocksize * (segbuf->sb_sum.nsumblk - 1);
548 struct nilfs_segment_buffer *segbuf;
552 segbuf = sci->sc_curseg;
555 if (segbuf->sb_sum.nblocks + required + 1 > segbuf->sb_rest_blocks) {
564 err = nilfs_segbuf_extend_segsum(segbuf);
573 nilfs_segbuf_add_file_buffer(segbuf, bh);
1316 struct nilfs_segment_buffer *segbuf, *prev;
1320 segbuf = nilfs_segbuf_new(sci->sc_super);
1321 if (unlikely(!segbuf))
1325 nilfs_segbuf_map(segbuf, nilfs->ns_segnum,
1327 if (segbuf->sb_rest_blocks < NILFS_PSEG_MIN_BLOCKS) {
1329 nilfs_segbuf_map(segbuf, nilfs->ns_segnum, 0, nilfs);
1332 segbuf->sb_sum.seg_seq = nilfs->ns_seg_seq;
1341 nilfs_segbuf_map_cont(segbuf, prev);
1342 segbuf->sb_sum.seg_seq = prev->sb_sum.seg_seq;
1345 if (segbuf->sb_rest_blocks < NILFS_PSEG_MIN_BLOCKS) {
1346 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs);
1347 segbuf->sb_sum.seg_seq++;
1352 err = nilfs_sufile_mark_dirty(nilfs->ns_sufile, segbuf->sb_segnum);
1361 nilfs_segbuf_set_next_segnum(segbuf, nextnum, nilfs);
1364 list_add_tail(&segbuf->sb_list, &sci->sc_segbufs);
1365 sci->sc_segbuf_nblocks = segbuf->sb_rest_blocks;
1369 nilfs_segbuf_free(segbuf);
1376 struct nilfs_segment_buffer *segbuf, *prev;
1396 segbuf = nilfs_segbuf_new(sci->sc_super);
1397 if (unlikely(!segbuf))
1401 nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs);
1402 sci->sc_segbuf_nblocks += segbuf->sb_rest_blocks;
1409 segbuf->sb_sum.seg_seq = prev->sb_sum.seg_seq + 1;
1410 nilfs_segbuf_set_next_segnum(segbuf, nextnextnum, nilfs);
1412 list_add_tail(&segbuf->sb_list, &list);
1413 prev = segbuf;
1419 nilfs_segbuf_free(segbuf);
1421 list_for_each_entry(segbuf, &list, sb_list) {
1422 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1432 struct nilfs_segment_buffer *segbuf, *prev;
1436 segbuf = NILFS_FIRST_SEGBUF(logs);
1437 if (nilfs->ns_nextnum != segbuf->sb_nextnum) {
1438 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1441 if (atomic_read(&segbuf->sb_err)) {
1443 if (segbuf->sb_pseg_start != segbuf->sb_fseg_start)
1448 nilfs_terminate_segment(nilfs, segbuf->sb_fseg_start,
1449 segbuf->sb_fseg_end);
1454 prev = segbuf;
1455 list_for_each_entry_continue(segbuf, logs, sb_list) {
1456 if (prev->sb_nextnum != segbuf->sb_nextnum) {
1457 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1460 if (atomic_read(&segbuf->sb_err) &&
1461 segbuf->sb_segnum != nilfs->ns_nextnum)
1463 nilfs_sufile_set_error(sufile, segbuf->sb_segnum);
1464 prev = segbuf;
1471 struct nilfs_segment_buffer *segbuf;
1475 list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
1476 live_blocks = segbuf->sb_sum.nblocks +
1477 (segbuf->sb_pseg_start - segbuf->sb_fseg_start);
1478 ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum,
1487 struct nilfs_segment_buffer *segbuf;
1490 segbuf = NILFS_FIRST_SEGBUF(logs);
1491 ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum,
1492 segbuf->sb_pseg_start -
1493 segbuf->sb_fseg_start, 0);
1496 list_for_each_entry_continue(segbuf, logs, sb_list) {
1497 ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum,
1507 struct nilfs_segment_buffer *segbuf = last;
1510 list_for_each_entry_continue(segbuf, &sci->sc_segbufs, sb_list) {
1511 sci->sc_segbuf_nblocks -= segbuf->sb_rest_blocks;
1512 ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum);
1584 struct nilfs_segment_buffer *segbuf,
1589 unsigned long nfinfo = segbuf->sb_sum.nfinfo;
1602 blocknr = segbuf->sb_pseg_start + segbuf->sb_sum.nsumblk;
1603 ssp.bh = NILFS_SEGBUF_FIRST_BH(&segbuf->sb_segsum_buffers);
1606 list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) {
1607 if (bh == segbuf->sb_super_root)
1657 struct nilfs_segment_buffer *segbuf;
1660 list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
1661 err = nilfs_segctor_update_payload_blocknr(sci, segbuf, mode);
1664 nilfs_segbuf_fill_in_segsum(segbuf);
1686 struct nilfs_segment_buffer *segbuf;
1689 list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
1692 list_for_each_entry(bh, &segbuf->sb_segsum_buffers,
1705 list_for_each_entry(bh, &segbuf->sb_payload_buffers,
1707 if (bh == segbuf->sb_super_root) {
1783 struct nilfs_segment_buffer *segbuf;
1790 list_for_each_entry(segbuf, logs, sb_list) {
1791 list_for_each_entry(bh, &segbuf->sb_segsum_buffers,
1801 list_for_each_entry(bh, &segbuf->sb_payload_buffers,
1803 if (bh == segbuf->sb_super_root) {
1850 struct nilfs_segment_buffer *segbuf)
1852 nilfs->ns_segnum = segbuf->sb_segnum;
1853 nilfs->ns_nextnum = segbuf->sb_nextnum;
1854 nilfs->ns_pseg_offset = segbuf->sb_pseg_start - segbuf->sb_fseg_start
1855 + segbuf->sb_sum.nblocks;
1856 nilfs->ns_seg_seq = segbuf->sb_sum.seg_seq;
1857 nilfs->ns_ctime = segbuf->sb_sum.ctime;
1862 struct nilfs_segment_buffer *segbuf;
1867 list_for_each_entry(segbuf, &sci->sc_write_logs, sb_list) {
1870 list_for_each_entry(bh, &segbuf->sb_segsum_buffers,
1891 list_for_each_entry(bh, &segbuf->sb_payload_buffers,
1899 if (bh == segbuf->sb_super_root) {
1916 if (!nilfs_segbuf_simplex(segbuf)) {
1917 if (segbuf->sb_sum.flags & NILFS_SS_LOGBGN) {
1921 if (segbuf->sb_sum.flags & NILFS_SS_LOGEND)
1943 segbuf = NILFS_LAST_SEGBUF(&sci->sc_write_logs);
1944 nilfs_set_next_segment(nilfs, segbuf);
1948 nilfs_set_last_segment(nilfs, segbuf->sb_pseg_start,
1949 segbuf->sb_sum.seg_seq, nilfs->ns_cno++);