• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/fs/nilfs2/

Lines Matching defs:nilfs

28 #include "nilfs.h"
96 * @nilfs: nilfs object
104 static int nilfs_compute_checksum(struct the_nilfs *nilfs,
109 unsigned int blocksize = nilfs->ns_blocksize;
116 crc = crc32_le(nilfs->ns_crc_seed,
122 bh = __bread(nilfs->ns_bdev, ++start, blocksize);
137 * @nilfs: nilfs object
142 int nilfs_read_super_root_block(struct the_nilfs *nilfs, sector_t sr_block,
151 bh_sr = __bread(nilfs->ns_bdev, sr_block, nilfs->ns_blocksize);
161 if (bytes == 0 || bytes > nilfs->ns_blocksize) {
166 nilfs, bh_sr, &crc, sizeof(sr->sr_sum), bytes,
188 * @nilfs: nilfs object
193 nilfs_read_log_header(struct the_nilfs *nilfs, sector_t start_blocknr,
198 bh_sum = __bread(nilfs->ns_bdev, start_blocknr, nilfs->ns_blocksize);
206 * @nilfs: nilfs object
211 static int nilfs_validate_log(struct the_nilfs *nilfs, u64 seg_seq,
229 if (unlikely(nblock == 0 || nblock > nilfs->ns_blocks_per_segment))
234 if (nilfs_compute_checksum(nilfs, bh_sum, &crc, sizeof(sum->ss_datasum),
235 ((u64)nblock << nilfs->ns_blocksize_bits),
249 * @nilfs: nilfs object
254 static void *nilfs_read_summary_info(struct the_nilfs *nilfs,
265 *pbh = __bread(nilfs->ns_bdev, blocknr + 1,
266 nilfs->ns_blocksize);
278 * @nilfs: nilfs object
284 static void nilfs_skip_summary_info(struct the_nilfs *nilfs,
304 *pbh = __bread(nilfs->ns_bdev, blocknr + bcnt,
305 nilfs->ns_blocksize);
311 * @nilfs: nilfs object
316 static int nilfs_scan_dsync_log(struct the_nilfs *nilfs, sector_t start_blocknr,
332 blocknr = start_blocknr + DIV_ROUND_UP(sumbytes, nilfs->ns_blocksize);
333 bh = __bread(nilfs->ns_bdev, start_blocknr, nilfs->ns_blocksize);
342 finfo = nilfs_read_summary_info(nilfs, &bh, &offset,
356 binfo = nilfs_read_summary_info(nilfs, &bh, &offset,
376 nilfs_skip_summary_info(nilfs, &bh, &offset, sizeof(__le64),
427 static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
433 struct inode *sufile = nilfs->ns_sufile;
438 segnum[0] = nilfs->ns_segnum;
439 segnum[1] = nilfs->ns_nextnum;
443 nilfs_attach_writer(nilfs, sbi);
477 nilfs->ns_pseg_offset = 0;
478 nilfs->ns_seg_seq = ri->ri_seq + 2;
479 nilfs->ns_nextnum = nilfs->ns_segnum = segnum[0];
483 nilfs_detach_writer(nilfs, sbi);
487 static int nilfs_recovery_copy_block(struct the_nilfs *nilfs,
494 bh_org = __bread(nilfs->ns_bdev, rb->blocknr, nilfs->ns_blocksize);
505 static int nilfs_recover_dsync_blocks(struct the_nilfs *nilfs,
512 unsigned blocksize = nilfs->ns_blocksize;
535 err = nilfs_recovery_copy_block(nilfs, rb, page);
575 * @nilfs: nilfs object
579 static int nilfs_do_roll_forward(struct the_nilfs *nilfs,
600 nilfs_attach_writer(nilfs, sbi);
603 segnum = nilfs_get_segnum_of_block(nilfs, pseg_start);
604 nilfs_get_segment_range(nilfs, segnum, &seg_start, &seg_end);
608 bh_sum = nilfs_read_log_header(nilfs, pseg_start, &sum);
614 ret = nilfs_validate_log(nilfs, seg_seq, bh_sum, sum);
628 nextnum = nilfs_get_segnum_of_block(nilfs,
631 nilfs->ns_ctime = le64_to_cpu(sum->ss_create);
633 nilfs->ns_nongc_ctime = nilfs->ns_ctime;
646 err = nilfs_scan_dsync_log(nilfs, pseg_start, sum,
652 nilfs, sbi, &dsync_blocks,
679 nilfs_get_segment_range(nilfs, segnum, &seg_start, &seg_end);
691 nilfs_detach_writer(nilfs, sbi);
704 static void nilfs_finish_roll_forward(struct the_nilfs *nilfs,
710 if (nilfs_get_segnum_of_block(nilfs, ri->ri_lsegs_start) !=
711 nilfs_get_segnum_of_block(nilfs, ri->ri_super_root))
714 bh = __getblk(nilfs->ns_bdev, ri->ri_lsegs_start, nilfs->ns_blocksize);
728 * @nilfs: nilfs object
745 int nilfs_salvage_orphan_logs(struct the_nilfs *nilfs,
761 err = nilfs_do_roll_forward(nilfs, sbi, ri);
766 err = nilfs_prepare_segment_for_recovery(nilfs, sbi, ri);
777 set_nilfs_discontinued(nilfs);
787 nilfs_finish_roll_forward(nilfs, ri);
797 * @nilfs: the_nilfs
813 int nilfs_search_super_root(struct the_nilfs *nilfs,
830 pseg_start = nilfs->ns_last_pseg;
831 seg_seq = nilfs->ns_last_seq;
832 cno = nilfs->ns_last_cno;
833 segnum = nilfs_get_segnum_of_block(nilfs, pseg_start);
836 nilfs_get_segment_range(nilfs, segnum, &seg_start, &seg_end);
841 __breadahead(nilfs->ns_bdev, b++, nilfs->ns_blocksize);
846 bh_sum = nilfs_read_log_header(nilfs, pseg_start, &sum);
850 ret = nilfs_validate_log(nilfs, seg_seq, bh_sum, sum);
868 nextnum = nilfs_get_segnum_of_block(nilfs,
883 nilfs_get_segment_range(nilfs, nextnum, &b, &end);
885 __breadahead(nilfs->ns_bdev, b++,
886 nilfs->ns_blocksize);
905 nilfs->ns_pseg_offset = pseg_start + nblocks - seg_start;
906 nilfs->ns_seg_seq = seg_seq;
907 nilfs->ns_segnum = segnum;
908 nilfs->ns_cno = cno; /* nilfs->ns_cno = ri->ri_cno + 1 */
909 nilfs->ns_ctime = le64_to_cpu(sum->ss_create);
910 nilfs->ns_nextnum = nextnum;
915 if (nilfs->ns_mount_state & NILFS_VALID_FS)
947 nilfs_get_segment_range(nilfs, segnum, &seg_start, &seg_end);
955 nilfs->ns_last_pseg = sr_pseg_start;
956 nilfs->ns_last_seq = nilfs->ns_seg_seq;
957 nilfs->ns_last_cno = ri->ri_cno;