static int lssu_list_suinfo(struct nilfs *nilfs, int all) { struct nilfs_sustat sustat; __u64 segnum, rest, count; ssize_t nsi, n; lssu_print_header(); if (nilfs_get_sustat(nilfs, &sustat) < 0) return 1; segnum = param_index; rest = param_lines && param_lines < sustat.ss_nsegs ? param_lines : sustat.ss_nsegs; for ( ; rest > 0 && segnum < sustat.ss_nsegs; rest -= n) { count = (rest < LSSU_NSEGS) ? rest : LSSU_NSEGS; nsi = nilfs_get_suinfo(nilfs, segnum, suinfos, count); if (nsi < 0) return 1; n = lssu_print_suinfo(segnum, nsi, all); segnum += nsi; } return 0; }
static int lssu_list_suinfo(struct nilfs *nilfs, unsigned long* bitmap) { struct nilfs_sustat sustat; __u64 segnum, rest, count; ssize_t nsi, n; if (nilfs_get_sustat(nilfs, &sustat) < 0) return 1; segnum = 0; rest = sustat.ss_nsegs; for ( ; rest > 0 && segnum < sustat.ss_nsegs; rest -= n) { count = min_t(__u64, rest, LSSU_NSEGS); nsi = nilfs_get_suinfo(nilfs, segnum, suinfos, count); if (nsi < 0) return 1; n = lssu_print_suinfo(nilfs, segnum, nsi, sustat.ss_prot_seq, bitmap); segnum += nsi; } return 0; }