segbuf 30 fs/nilfs2/segbuf.c static int nilfs_segbuf_write(struct nilfs_segment_buffer *segbuf, segbuf 32 fs/nilfs2/segbuf.c static int nilfs_segbuf_wait(struct nilfs_segment_buffer *segbuf); segbuf 36 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *segbuf; segbuf 38 fs/nilfs2/segbuf.c segbuf = kmem_cache_alloc(nilfs_segbuf_cachep, GFP_NOFS); segbuf 39 fs/nilfs2/segbuf.c if (unlikely(!segbuf)) segbuf 42 fs/nilfs2/segbuf.c segbuf->sb_super = sb; segbuf 43 fs/nilfs2/segbuf.c INIT_LIST_HEAD(&segbuf->sb_list); segbuf 44 fs/nilfs2/segbuf.c INIT_LIST_HEAD(&segbuf->sb_segsum_buffers); segbuf 45 fs/nilfs2/segbuf.c INIT_LIST_HEAD(&segbuf->sb_payload_buffers); segbuf 46 fs/nilfs2/segbuf.c segbuf->sb_super_root = NULL; segbuf 48 fs/nilfs2/segbuf.c init_completion(&segbuf->sb_bio_event); segbuf 49 fs/nilfs2/segbuf.c atomic_set(&segbuf->sb_err, 0); segbuf 50 fs/nilfs2/segbuf.c segbuf->sb_nbio = 0; segbuf 52 fs/nilfs2/segbuf.c return segbuf; segbuf 55 fs/nilfs2/segbuf.c void nilfs_segbuf_free(struct nilfs_segment_buffer *segbuf) segbuf 57 fs/nilfs2/segbuf.c kmem_cache_free(nilfs_segbuf_cachep, segbuf); segbuf 60 fs/nilfs2/segbuf.c void nilfs_segbuf_map(struct nilfs_segment_buffer *segbuf, __u64 segnum, segbuf 63 fs/nilfs2/segbuf.c segbuf->sb_segnum = segnum; segbuf 64 fs/nilfs2/segbuf.c nilfs_get_segment_range(nilfs, segnum, &segbuf->sb_fseg_start, segbuf 65 fs/nilfs2/segbuf.c &segbuf->sb_fseg_end); segbuf 67 fs/nilfs2/segbuf.c segbuf->sb_pseg_start = segbuf->sb_fseg_start + offset; segbuf 68 fs/nilfs2/segbuf.c segbuf->sb_rest_blocks = segbuf 69 fs/nilfs2/segbuf.c segbuf->sb_fseg_end - segbuf->sb_pseg_start + 1; segbuf 77 fs/nilfs2/segbuf.c void nilfs_segbuf_map_cont(struct nilfs_segment_buffer *segbuf, segbuf 80 fs/nilfs2/segbuf.c segbuf->sb_segnum = prev->sb_segnum; segbuf 81 fs/nilfs2/segbuf.c segbuf->sb_fseg_start = prev->sb_fseg_start; segbuf 82 fs/nilfs2/segbuf.c segbuf->sb_fseg_end = prev->sb_fseg_end; segbuf 83 fs/nilfs2/segbuf.c segbuf->sb_pseg_start = prev->sb_pseg_start + prev->sb_sum.nblocks; segbuf 84 fs/nilfs2/segbuf.c segbuf->sb_rest_blocks = segbuf 85 fs/nilfs2/segbuf.c segbuf->sb_fseg_end - segbuf->sb_pseg_start + 1; segbuf 88 fs/nilfs2/segbuf.c void nilfs_segbuf_set_next_segnum(struct nilfs_segment_buffer *segbuf, segbuf 91 fs/nilfs2/segbuf.c segbuf->sb_nextnum = nextnum; segbuf 92 fs/nilfs2/segbuf.c segbuf->sb_sum.next = nilfs_get_segment_start_blocknr(nilfs, nextnum); segbuf 95 fs/nilfs2/segbuf.c int nilfs_segbuf_extend_segsum(struct nilfs_segment_buffer *segbuf) segbuf 99 fs/nilfs2/segbuf.c bh = sb_getblk(segbuf->sb_super, segbuf 100 fs/nilfs2/segbuf.c segbuf->sb_pseg_start + segbuf->sb_sum.nsumblk); segbuf 104 fs/nilfs2/segbuf.c nilfs_segbuf_add_segsum_buffer(segbuf, bh); segbuf 108 fs/nilfs2/segbuf.c int nilfs_segbuf_extend_payload(struct nilfs_segment_buffer *segbuf, segbuf 113 fs/nilfs2/segbuf.c bh = sb_getblk(segbuf->sb_super, segbuf 114 fs/nilfs2/segbuf.c segbuf->sb_pseg_start + segbuf->sb_sum.nblocks); segbuf 118 fs/nilfs2/segbuf.c nilfs_segbuf_add_payload_buffer(segbuf, bh); segbuf 123 fs/nilfs2/segbuf.c int nilfs_segbuf_reset(struct nilfs_segment_buffer *segbuf, unsigned int flags, segbuf 128 fs/nilfs2/segbuf.c segbuf->sb_sum.nblocks = segbuf->sb_sum.nsumblk = 0; segbuf 129 fs/nilfs2/segbuf.c err = nilfs_segbuf_extend_segsum(segbuf); segbuf 133 fs/nilfs2/segbuf.c segbuf->sb_sum.flags = flags; segbuf 134 fs/nilfs2/segbuf.c segbuf->sb_sum.sumbytes = sizeof(struct nilfs_segment_summary); segbuf 135 fs/nilfs2/segbuf.c segbuf->sb_sum.nfinfo = segbuf->sb_sum.nfileblk = 0; segbuf 136 fs/nilfs2/segbuf.c segbuf->sb_sum.ctime = ctime; segbuf 137 fs/nilfs2/segbuf.c segbuf->sb_sum.cno = cno; segbuf 144 fs/nilfs2/segbuf.c void nilfs_segbuf_fill_in_segsum(struct nilfs_segment_buffer *segbuf) segbuf 149 fs/nilfs2/segbuf.c bh_sum = list_entry(segbuf->sb_segsum_buffers.next, segbuf 155 fs/nilfs2/segbuf.c raw_sum->ss_flags = cpu_to_le16(segbuf->sb_sum.flags); segbuf 156 fs/nilfs2/segbuf.c raw_sum->ss_seq = cpu_to_le64(segbuf->sb_sum.seg_seq); segbuf 157 fs/nilfs2/segbuf.c raw_sum->ss_create = cpu_to_le64(segbuf->sb_sum.ctime); segbuf 158 fs/nilfs2/segbuf.c raw_sum->ss_next = cpu_to_le64(segbuf->sb_sum.next); segbuf 159 fs/nilfs2/segbuf.c raw_sum->ss_nblocks = cpu_to_le32(segbuf->sb_sum.nblocks); segbuf 160 fs/nilfs2/segbuf.c raw_sum->ss_nfinfo = cpu_to_le32(segbuf->sb_sum.nfinfo); segbuf 161 fs/nilfs2/segbuf.c raw_sum->ss_sumbytes = cpu_to_le32(segbuf->sb_sum.sumbytes); segbuf 163 fs/nilfs2/segbuf.c raw_sum->ss_cno = cpu_to_le64(segbuf->sb_sum.cno); segbuf 170 fs/nilfs2/segbuf.c nilfs_segbuf_fill_in_segsum_crc(struct nilfs_segment_buffer *segbuf, u32 seed) segbuf 174 fs/nilfs2/segbuf.c unsigned long size, bytes = segbuf->sb_sum.sumbytes; segbuf 177 fs/nilfs2/segbuf.c bh = list_entry(segbuf->sb_segsum_buffers.next, struct buffer_head, segbuf 188 fs/nilfs2/segbuf.c list_for_each_entry_continue(bh, &segbuf->sb_segsum_buffers, segbuf 197 fs/nilfs2/segbuf.c static void nilfs_segbuf_fill_in_data_crc(struct nilfs_segment_buffer *segbuf, segbuf 205 fs/nilfs2/segbuf.c bh = list_entry(segbuf->sb_segsum_buffers.next, struct buffer_head, segbuf 212 fs/nilfs2/segbuf.c list_for_each_entry_continue(bh, &segbuf->sb_segsum_buffers, segbuf 216 fs/nilfs2/segbuf.c list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { segbuf 225 fs/nilfs2/segbuf.c nilfs_segbuf_fill_in_super_root_crc(struct nilfs_segment_buffer *segbuf, segbuf 229 fs/nilfs2/segbuf.c struct the_nilfs *nilfs = segbuf->sb_super->s_fs_info; segbuf 233 fs/nilfs2/segbuf.c raw_sr = (struct nilfs_super_root *)segbuf->sb_super_root->b_data; segbuf 251 fs/nilfs2/segbuf.c static void nilfs_segbuf_clear(struct nilfs_segment_buffer *segbuf) segbuf 253 fs/nilfs2/segbuf.c nilfs_release_buffers(&segbuf->sb_segsum_buffers); segbuf 254 fs/nilfs2/segbuf.c nilfs_release_buffers(&segbuf->sb_payload_buffers); segbuf 255 fs/nilfs2/segbuf.c segbuf->sb_super_root = NULL; segbuf 263 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *segbuf; segbuf 265 fs/nilfs2/segbuf.c list_for_each_entry(segbuf, logs, sb_list) segbuf 266 fs/nilfs2/segbuf.c nilfs_segbuf_clear(segbuf); segbuf 272 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *n, *segbuf; segbuf 274 fs/nilfs2/segbuf.c segbuf = list_prepare_entry(last, logs, sb_list); segbuf 275 fs/nilfs2/segbuf.c list_for_each_entry_safe_continue(segbuf, n, logs, sb_list) { segbuf 276 fs/nilfs2/segbuf.c list_del_init(&segbuf->sb_list); segbuf 277 fs/nilfs2/segbuf.c nilfs_segbuf_clear(segbuf); segbuf 278 fs/nilfs2/segbuf.c nilfs_segbuf_free(segbuf); segbuf 284 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *segbuf; segbuf 287 fs/nilfs2/segbuf.c list_for_each_entry(segbuf, logs, sb_list) { segbuf 288 fs/nilfs2/segbuf.c ret = nilfs_segbuf_write(segbuf, nilfs); segbuf 297 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *segbuf; segbuf 300 fs/nilfs2/segbuf.c list_for_each_entry(segbuf, logs, sb_list) { segbuf 301 fs/nilfs2/segbuf.c err = nilfs_segbuf_wait(segbuf); segbuf 315 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *segbuf; segbuf 317 fs/nilfs2/segbuf.c list_for_each_entry(segbuf, logs, sb_list) { segbuf 318 fs/nilfs2/segbuf.c if (segbuf->sb_super_root) segbuf 319 fs/nilfs2/segbuf.c nilfs_segbuf_fill_in_super_root_crc(segbuf, seed); segbuf 320 fs/nilfs2/segbuf.c nilfs_segbuf_fill_in_segsum_crc(segbuf, seed); segbuf 321 fs/nilfs2/segbuf.c nilfs_segbuf_fill_in_data_crc(segbuf, seed); segbuf 330 fs/nilfs2/segbuf.c struct nilfs_segment_buffer *segbuf = bio->bi_private; segbuf 333 fs/nilfs2/segbuf.c atomic_inc(&segbuf->sb_err); segbuf 336 fs/nilfs2/segbuf.c complete(&segbuf->sb_bio_event); segbuf 339 fs/nilfs2/segbuf.c static int nilfs_segbuf_submit_bio(struct nilfs_segment_buffer *segbuf, segbuf 346 fs/nilfs2/segbuf.c if (segbuf->sb_nbio > 0 && segbuf 347 fs/nilfs2/segbuf.c bdi_write_congested(segbuf->sb_super->s_bdi)) { segbuf 348 fs/nilfs2/segbuf.c wait_for_completion(&segbuf->sb_bio_event); segbuf 349 fs/nilfs2/segbuf.c segbuf->sb_nbio--; segbuf 350 fs/nilfs2/segbuf.c if (unlikely(atomic_read(&segbuf->sb_err))) { segbuf 358 fs/nilfs2/segbuf.c bio->bi_private = segbuf; segbuf 361 fs/nilfs2/segbuf.c segbuf->sb_nbio++; segbuf 401 fs/nilfs2/segbuf.c static void nilfs_segbuf_prepare_write(struct nilfs_segment_buffer *segbuf, segbuf 405 fs/nilfs2/segbuf.c wi->rest_blocks = segbuf->sb_sum.nblocks; segbuf 409 fs/nilfs2/segbuf.c wi->blocknr = segbuf->sb_pseg_start; segbuf 412 fs/nilfs2/segbuf.c static int nilfs_segbuf_submit_bh(struct nilfs_segment_buffer *segbuf, segbuf 433 fs/nilfs2/segbuf.c err = nilfs_segbuf_submit_bio(segbuf, wi, mode, 0); segbuf 452 fs/nilfs2/segbuf.c static int nilfs_segbuf_write(struct nilfs_segment_buffer *segbuf, segbuf 460 fs/nilfs2/segbuf.c nilfs_segbuf_prepare_write(segbuf, &wi); segbuf 462 fs/nilfs2/segbuf.c list_for_each_entry(bh, &segbuf->sb_segsum_buffers, b_assoc_buffers) { segbuf 463 fs/nilfs2/segbuf.c res = nilfs_segbuf_submit_bh(segbuf, &wi, bh, REQ_OP_WRITE); segbuf 468 fs/nilfs2/segbuf.c list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { segbuf 469 fs/nilfs2/segbuf.c res = nilfs_segbuf_submit_bh(segbuf, &wi, bh, REQ_OP_WRITE); segbuf 479 fs/nilfs2/segbuf.c res = nilfs_segbuf_submit_bio(segbuf, &wi, REQ_OP_WRITE, segbuf 496 fs/nilfs2/segbuf.c static int nilfs_segbuf_wait(struct nilfs_segment_buffer *segbuf) segbuf 500 fs/nilfs2/segbuf.c if (!segbuf->sb_nbio) segbuf 504 fs/nilfs2/segbuf.c wait_for_completion(&segbuf->sb_bio_event); segbuf 505 fs/nilfs2/segbuf.c } while (--segbuf->sb_nbio > 0); segbuf 507 fs/nilfs2/segbuf.c if (unlikely(atomic_read(&segbuf->sb_err) > 0)) { segbuf 508 fs/nilfs2/segbuf.c nilfs_msg(segbuf->sb_super, KERN_ERR, segbuf 510 fs/nilfs2/segbuf.c (unsigned long long)segbuf->sb_pseg_start, segbuf 511 fs/nilfs2/segbuf.c segbuf->sb_sum.nblocks, segbuf 512 fs/nilfs2/segbuf.c (unsigned long long)segbuf->sb_segnum); segbuf 87 fs/nilfs2/segbuf.h #define NILFS_NEXT_SEGBUF(segbuf) NILFS_LIST_SEGBUF((segbuf)->sb_list.next) segbuf 88 fs/nilfs2/segbuf.h #define NILFS_PREV_SEGBUF(segbuf) NILFS_LIST_SEGBUF((segbuf)->sb_list.prev) segbuf 91 fs/nilfs2/segbuf.h #define NILFS_SEGBUF_IS_LAST(segbuf, head) ((segbuf)->sb_list.next == (head)) segbuf 110 fs/nilfs2/segbuf.h void nilfs_segbuf_map_cont(struct nilfs_segment_buffer *segbuf, segbuf 121 fs/nilfs2/segbuf.h static inline int nilfs_segbuf_simplex(struct nilfs_segment_buffer *segbuf) segbuf 123 fs/nilfs2/segbuf.h unsigned int flags = segbuf->sb_sum.flags; segbuf 129 fs/nilfs2/segbuf.h static inline int nilfs_segbuf_empty(struct nilfs_segment_buffer *segbuf) segbuf 131 fs/nilfs2/segbuf.h return segbuf->sb_sum.nblocks == segbuf->sb_sum.nsumblk; segbuf 135 fs/nilfs2/segbuf.h nilfs_segbuf_add_segsum_buffer(struct nilfs_segment_buffer *segbuf, segbuf 138 fs/nilfs2/segbuf.h list_add_tail(&bh->b_assoc_buffers, &segbuf->sb_segsum_buffers); segbuf 139 fs/nilfs2/segbuf.h segbuf->sb_sum.nblocks++; segbuf 140 fs/nilfs2/segbuf.h segbuf->sb_sum.nsumblk++; segbuf 144 fs/nilfs2/segbuf.h nilfs_segbuf_add_payload_buffer(struct nilfs_segment_buffer *segbuf, segbuf 147 fs/nilfs2/segbuf.h list_add_tail(&bh->b_assoc_buffers, &segbuf->sb_payload_buffers); segbuf 148 fs/nilfs2/segbuf.h segbuf->sb_sum.nblocks++; segbuf 152 fs/nilfs2/segbuf.h nilfs_segbuf_add_file_buffer(struct nilfs_segment_buffer *segbuf, segbuf 156 fs/nilfs2/segbuf.h nilfs_segbuf_add_payload_buffer(segbuf, bh); segbuf 157 fs/nilfs2/segbuf.h segbuf->sb_sum.nfileblk++; segbuf 397 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf = sci->sc_curseg; segbuf 404 fs/nilfs2/segment.c &segbuf->sb_segsum_buffers)); segbuf 418 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf = sci->sc_curseg; segbuf 426 fs/nilfs2/segment.c err = nilfs_segbuf_reset(segbuf, flags, sci->sc_seg_ctime, sci->sc_cno); segbuf 430 fs/nilfs2/segment.c sumbh = NILFS_SEGBUF_FIRST_BH(&segbuf->sb_segsum_buffers); segbuf 431 fs/nilfs2/segment.c sumbytes = segbuf->sb_sum.sumbytes; segbuf 452 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf = sci->sc_curseg; segbuf 455 fs/nilfs2/segment.c if (segbuf->sb_sum.nblocks >= segbuf->sb_rest_blocks) { segbuf 459 fs/nilfs2/segment.c segbuf = sci->sc_curseg; segbuf 461 fs/nilfs2/segment.c err = nilfs_segbuf_extend_payload(segbuf, &segbuf->sb_super_root); segbuf 463 fs/nilfs2/segment.c segbuf->sb_sum.flags |= NILFS_SS_SR; segbuf 501 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 523 fs/nilfs2/segment.c segbuf = sci->sc_curseg; segbuf 524 fs/nilfs2/segment.c segbuf->sb_sum.sumbytes = sci->sc_binfo_ptr.offset + segbuf 525 fs/nilfs2/segment.c sci->sc_super->s_blocksize * (segbuf->sb_sum.nsumblk - 1); segbuf 535 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 539 fs/nilfs2/segment.c segbuf = sci->sc_curseg; segbuf 542 fs/nilfs2/segment.c if (segbuf->sb_sum.nblocks + required + 1 > segbuf->sb_rest_blocks) { segbuf 550 fs/nilfs2/segment.c err = nilfs_segbuf_extend_segsum(segbuf); segbuf 559 fs/nilfs2/segment.c nilfs_segbuf_add_file_buffer(segbuf, bh); segbuf 1276 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf, *prev; segbuf 1280 fs/nilfs2/segment.c segbuf = nilfs_segbuf_new(sci->sc_super); segbuf 1281 fs/nilfs2/segment.c if (unlikely(!segbuf)) segbuf 1285 fs/nilfs2/segment.c nilfs_segbuf_map(segbuf, nilfs->ns_segnum, segbuf 1287 fs/nilfs2/segment.c if (segbuf->sb_rest_blocks < NILFS_PSEG_MIN_BLOCKS) { segbuf 1289 fs/nilfs2/segment.c nilfs_segbuf_map(segbuf, nilfs->ns_segnum, 0, nilfs); segbuf 1292 fs/nilfs2/segment.c segbuf->sb_sum.seg_seq = nilfs->ns_seg_seq; segbuf 1301 fs/nilfs2/segment.c nilfs_segbuf_map_cont(segbuf, prev); segbuf 1302 fs/nilfs2/segment.c segbuf->sb_sum.seg_seq = prev->sb_sum.seg_seq; segbuf 1305 fs/nilfs2/segment.c if (segbuf->sb_rest_blocks < NILFS_PSEG_MIN_BLOCKS) { segbuf 1306 fs/nilfs2/segment.c nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs); segbuf 1307 fs/nilfs2/segment.c segbuf->sb_sum.seg_seq++; segbuf 1312 fs/nilfs2/segment.c err = nilfs_sufile_mark_dirty(nilfs->ns_sufile, segbuf->sb_segnum); segbuf 1321 fs/nilfs2/segment.c nilfs_segbuf_set_next_segnum(segbuf, nextnum, nilfs); segbuf 1324 fs/nilfs2/segment.c list_add_tail(&segbuf->sb_list, &sci->sc_segbufs); segbuf 1325 fs/nilfs2/segment.c sci->sc_segbuf_nblocks = segbuf->sb_rest_blocks; segbuf 1329 fs/nilfs2/segment.c nilfs_segbuf_free(segbuf); segbuf 1336 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf, *prev; segbuf 1356 fs/nilfs2/segment.c segbuf = nilfs_segbuf_new(sci->sc_super); segbuf 1357 fs/nilfs2/segment.c if (unlikely(!segbuf)) segbuf 1361 fs/nilfs2/segment.c nilfs_segbuf_map(segbuf, prev->sb_nextnum, 0, nilfs); segbuf 1362 fs/nilfs2/segment.c sci->sc_segbuf_nblocks += segbuf->sb_rest_blocks; segbuf 1369 fs/nilfs2/segment.c segbuf->sb_sum.seg_seq = prev->sb_sum.seg_seq + 1; segbuf 1370 fs/nilfs2/segment.c nilfs_segbuf_set_next_segnum(segbuf, nextnextnum, nilfs); segbuf 1372 fs/nilfs2/segment.c list_add_tail(&segbuf->sb_list, &list); segbuf 1373 fs/nilfs2/segment.c prev = segbuf; segbuf 1379 fs/nilfs2/segment.c nilfs_segbuf_free(segbuf); segbuf 1381 fs/nilfs2/segment.c list_for_each_entry(segbuf, &list, sb_list) { segbuf 1382 fs/nilfs2/segment.c ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum); segbuf 1392 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf, *prev; segbuf 1396 fs/nilfs2/segment.c segbuf = NILFS_FIRST_SEGBUF(logs); segbuf 1397 fs/nilfs2/segment.c if (nilfs->ns_nextnum != segbuf->sb_nextnum) { segbuf 1398 fs/nilfs2/segment.c ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum); segbuf 1401 fs/nilfs2/segment.c if (atomic_read(&segbuf->sb_err)) { segbuf 1403 fs/nilfs2/segment.c if (segbuf->sb_pseg_start != segbuf->sb_fseg_start) segbuf 1408 fs/nilfs2/segment.c nilfs_terminate_segment(nilfs, segbuf->sb_fseg_start, segbuf 1409 fs/nilfs2/segment.c segbuf->sb_fseg_end); segbuf 1414 fs/nilfs2/segment.c prev = segbuf; segbuf 1415 fs/nilfs2/segment.c list_for_each_entry_continue(segbuf, logs, sb_list) { segbuf 1416 fs/nilfs2/segment.c if (prev->sb_nextnum != segbuf->sb_nextnum) { segbuf 1417 fs/nilfs2/segment.c ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum); segbuf 1420 fs/nilfs2/segment.c if (atomic_read(&segbuf->sb_err) && segbuf 1421 fs/nilfs2/segment.c segbuf->sb_segnum != nilfs->ns_nextnum) segbuf 1423 fs/nilfs2/segment.c nilfs_sufile_set_error(sufile, segbuf->sb_segnum); segbuf 1424 fs/nilfs2/segment.c prev = segbuf; segbuf 1431 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 1435 fs/nilfs2/segment.c list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) { segbuf 1436 fs/nilfs2/segment.c live_blocks = segbuf->sb_sum.nblocks + segbuf 1437 fs/nilfs2/segment.c (segbuf->sb_pseg_start - segbuf->sb_fseg_start); segbuf 1438 fs/nilfs2/segment.c ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum, segbuf 1447 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 1450 fs/nilfs2/segment.c segbuf = NILFS_FIRST_SEGBUF(logs); segbuf 1451 fs/nilfs2/segment.c ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum, segbuf 1452 fs/nilfs2/segment.c segbuf->sb_pseg_start - segbuf 1453 fs/nilfs2/segment.c segbuf->sb_fseg_start, 0); segbuf 1456 fs/nilfs2/segment.c list_for_each_entry_continue(segbuf, logs, sb_list) { segbuf 1457 fs/nilfs2/segment.c ret = nilfs_sufile_set_segment_usage(sufile, segbuf->sb_segnum, segbuf 1467 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf = last; segbuf 1470 fs/nilfs2/segment.c list_for_each_entry_continue(segbuf, &sci->sc_segbufs, sb_list) { segbuf 1471 fs/nilfs2/segment.c sci->sc_segbuf_nblocks -= segbuf->sb_rest_blocks; segbuf 1472 fs/nilfs2/segment.c ret = nilfs_sufile_free(sufile, segbuf->sb_nextnum); segbuf 1543 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf, segbuf 1548 fs/nilfs2/segment.c unsigned long nfinfo = segbuf->sb_sum.nfinfo; segbuf 1561 fs/nilfs2/segment.c blocknr = segbuf->sb_pseg_start + segbuf->sb_sum.nsumblk; segbuf 1562 fs/nilfs2/segment.c ssp.bh = NILFS_SEGBUF_FIRST_BH(&segbuf->sb_segsum_buffers); segbuf 1565 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { segbuf 1566 fs/nilfs2/segment.c if (bh == segbuf->sb_super_root) segbuf 1616 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 1619 fs/nilfs2/segment.c list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) { segbuf 1620 fs/nilfs2/segment.c err = nilfs_segctor_update_payload_blocknr(sci, segbuf, mode); segbuf 1623 fs/nilfs2/segment.c nilfs_segbuf_fill_in_segsum(segbuf); segbuf 1645 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 1648 fs/nilfs2/segment.c list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) { segbuf 1651 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_segsum_buffers, segbuf 1664 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_payload_buffers, segbuf 1667 fs/nilfs2/segment.c if (bh == segbuf->sb_super_root) { segbuf 1742 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 1749 fs/nilfs2/segment.c list_for_each_entry(segbuf, logs, sb_list) { segbuf 1750 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_segsum_buffers, segbuf 1759 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_payload_buffers, segbuf 1762 fs/nilfs2/segment.c if (bh == segbuf->sb_super_root) { segbuf 1807 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf) segbuf 1809 fs/nilfs2/segment.c nilfs->ns_segnum = segbuf->sb_segnum; segbuf 1810 fs/nilfs2/segment.c nilfs->ns_nextnum = segbuf->sb_nextnum; segbuf 1811 fs/nilfs2/segment.c nilfs->ns_pseg_offset = segbuf->sb_pseg_start - segbuf->sb_fseg_start segbuf 1812 fs/nilfs2/segment.c + segbuf->sb_sum.nblocks; segbuf 1813 fs/nilfs2/segment.c nilfs->ns_seg_seq = segbuf->sb_sum.seg_seq; segbuf 1814 fs/nilfs2/segment.c nilfs->ns_ctime = segbuf->sb_sum.ctime; segbuf 1819 fs/nilfs2/segment.c struct nilfs_segment_buffer *segbuf; segbuf 1824 fs/nilfs2/segment.c list_for_each_entry(segbuf, &sci->sc_write_logs, sb_list) { segbuf 1827 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_segsum_buffers, segbuf 1848 fs/nilfs2/segment.c list_for_each_entry(bh, &segbuf->sb_payload_buffers, segbuf 1857 fs/nilfs2/segment.c if (bh == segbuf->sb_super_root) { segbuf 1871 fs/nilfs2/segment.c if (!nilfs_segbuf_simplex(segbuf)) { segbuf 1872 fs/nilfs2/segment.c if (segbuf->sb_sum.flags & NILFS_SS_LOGBGN) { segbuf 1876 fs/nilfs2/segment.c if (segbuf->sb_sum.flags & NILFS_SS_LOGEND) segbuf 1898 fs/nilfs2/segment.c segbuf = NILFS_LAST_SEGBUF(&sci->sc_write_logs); segbuf 1899 fs/nilfs2/segment.c nilfs_set_next_segment(nilfs, segbuf); segbuf 1903 fs/nilfs2/segment.c nilfs_set_last_segment(nilfs, segbuf->sb_pseg_start, segbuf 1904 fs/nilfs2/segment.c segbuf->sb_sum.seg_seq, nilfs->ns_cno++);