Lines Matching refs:sdp
446 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_rgrp_verify() local
466 fs_err(sdp, "free data mismatch: %u != %u\n", in gfs2_rgrp_verify()
474 fs_err(sdp, "used data mismatch: %u != %u\n", in gfs2_rgrp_verify()
481 fs_err(sdp, "used metadata mismatch: %u != %u\n", in gfs2_rgrp_verify()
503 struct gfs2_rgrpd *gfs2_blk2rgrpd(struct gfs2_sbd *sdp, u64 blk, bool exact) in gfs2_blk2rgrpd() argument
508 spin_lock(&sdp->sd_rindex_spin); in gfs2_blk2rgrpd()
509 n = sdp->sd_rindex_tree.rb_node; in gfs2_blk2rgrpd()
518 spin_unlock(&sdp->sd_rindex_spin); in gfs2_blk2rgrpd()
529 spin_unlock(&sdp->sd_rindex_spin); in gfs2_blk2rgrpd()
541 struct gfs2_rgrpd *gfs2_rgrpd_get_first(struct gfs2_sbd *sdp) in gfs2_rgrpd_get_first() argument
546 spin_lock(&sdp->sd_rindex_spin); in gfs2_rgrpd_get_first()
547 n = rb_first(&sdp->sd_rindex_tree); in gfs2_rgrpd_get_first()
549 spin_unlock(&sdp->sd_rindex_spin); in gfs2_rgrpd_get_first()
563 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_rgrpd_get_next() local
566 spin_lock(&sdp->sd_rindex_spin); in gfs2_rgrpd_get_next()
569 n = rb_first(&sdp->sd_rindex_tree); in gfs2_rgrpd_get_next()
572 spin_unlock(&sdp->sd_rindex_spin); in gfs2_rgrpd_get_next()
576 spin_unlock(&sdp->sd_rindex_spin); in gfs2_rgrpd_get_next()
582 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in check_and_update_goal() local
583 if (!ip->i_goal || gfs2_blk2rgrpd(sdp, ip->i_goal, 1) == NULL) in check_and_update_goal()
719 void gfs2_clear_rgrpd(struct gfs2_sbd *sdp) in gfs2_clear_rgrpd() argument
725 while ((n = rb_first(&sdp->sd_rindex_tree))) { in gfs2_clear_rgrpd()
729 rb_erase(n, &sdp->sd_rindex_tree); in gfs2_clear_rgrpd()
766 struct gfs2_sbd *sdp = rgd->rd_sbd; in compute_bitstructs() local
794 bytes = sdp->sd_sb.sb_bsize - sizeof(struct gfs2_rgrp); in compute_bitstructs()
808 bytes = sdp->sd_sb.sb_bsize - in compute_bitstructs()
827 fs_err(sdp, "start=%u len=%u offset=%u\n", in compute_bitstructs()
841 u64 gfs2_ri_total(struct gfs2_sbd *sdp) in gfs2_ri_total() argument
844 struct inode *inode = sdp->sd_rindex; in gfs2_ri_total()
865 struct gfs2_sbd *sdp = rgd->rd_sbd; in rgd_insert() local
866 struct rb_node **newn = &sdp->sd_rindex_tree.rb_node, *parent = NULL; in rgd_insert()
883 rb_insert_color(&rgd->rd_node, &sdp->sd_rindex_tree); in rgd_insert()
884 sdp->sd_rgrps++; in rgd_insert()
897 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in read_rindex_entry() local
898 const unsigned bsize = sdp->sd_sb.sb_bsize; in read_rindex_entry()
899 loff_t pos = sdp->sd_rgrps * sizeof(struct gfs2_rindex); in read_rindex_entry()
918 rgd->rd_sbd = sdp; in read_rindex_entry()
930 error = gfs2_glock_get(sdp, rgd->rd_addr, in read_rindex_entry()
940 if (rgd->rd_data > sdp->sd_max_rg_data) in read_rindex_entry()
941 sdp->sd_max_rg_data = rgd->rd_data; in read_rindex_entry()
942 spin_lock(&sdp->sd_rindex_spin); in read_rindex_entry()
944 spin_unlock(&sdp->sd_rindex_spin); in read_rindex_entry()
965 static void set_rgrp_preferences(struct gfs2_sbd *sdp) in set_rgrp_preferences() argument
972 rgd = gfs2_rgrpd_get_first(sdp); in set_rgrp_preferences()
973 for (i = 0; i < sdp->sd_lockstruct.ls_jid; i++) in set_rgrp_preferences()
979 for (i = 0; i < sdp->sd_journals; i++) { in set_rgrp_preferences()
996 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_ri_update() local
1006 set_rgrp_preferences(sdp); in gfs2_ri_update()
1008 sdp->sd_rindex_uptodate = 1; in gfs2_ri_update()
1029 int gfs2_rindex_update(struct gfs2_sbd *sdp) in gfs2_rindex_update() argument
1031 struct gfs2_inode *ip = GFS2_I(sdp->sd_rindex); in gfs2_rindex_update()
1038 if (!sdp->sd_rindex_uptodate) { in gfs2_rindex_update()
1045 if (!sdp->sd_rindex_uptodate) in gfs2_rindex_update()
1148 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_rgrp_bh_get() local
1167 error = gfs2_meta_wait(sdp, bi->bi_bh); in gfs2_rgrp_bh_get()
1170 if (gfs2_metatype_check(sdp, bi->bi_bh, y ? GFS2_METATYPE_RB : in gfs2_rgrp_bh_get()
1191 else if (sdp->sd_args.ar_rgrplvb) { in gfs2_rgrp_bh_get()
1207 gfs2_assert_warn(sdp, !bi->bi_clone); in gfs2_rgrp_bh_get()
1239 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_rgrp_go_lock() local
1241 if (gh->gh_flags & GL_SKIP && sdp->sd_args.ar_rgrplvb) in gfs2_rgrp_go_lock()
1267 int gfs2_rgrp_send_discards(struct gfs2_sbd *sdp, u64 offset, in gfs2_rgrp_send_discards() argument
1271 struct super_block *sb = sdp->sd_vfs; in gfs2_rgrp_send_discards()
1328 if (sdp->sd_args.ar_discard) in gfs2_rgrp_send_discards()
1329 fs_warn(sdp, "error %d on discard request, turning discards off for this filesystem", rv); in gfs2_rgrp_send_discards()
1330 sdp->sd_args.ar_discard = 0; in gfs2_rgrp_send_discards()
1345 struct gfs2_sbd *sdp = GFS2_SB(inode); in gfs2_fitrim() local
1346 struct request_queue *q = bdev_get_queue(sdp->sd_vfs->s_bdev); in gfs2_fitrim()
1357 unsigned bs_shift = sdp->sd_sb.sb_bsize_shift; in gfs2_fitrim()
1368 ret = gfs2_rindex_update(sdp); in gfs2_fitrim()
1377 if (end <= start || minlen > sdp->sd_max_rg_data) in gfs2_fitrim()
1380 rgd = gfs2_blk2rgrpd(sdp, start, 0); in gfs2_fitrim()
1381 rgd_end = gfs2_blk2rgrpd(sdp, end, 0); in gfs2_fitrim()
1383 if ((gfs2_rgrpd_get_first(sdp) == gfs2_rgrpd_get_next(rgd_end)) in gfs2_fitrim()
1397 ret = gfs2_rgrp_send_discards(sdp, in gfs2_fitrim()
1408 ret = gfs2_trans_begin(sdp, RES_RG_HDR, 0); in gfs2_fitrim()
1415 gfs2_trans_end(sdp); in gfs2_fitrim()
1767 struct gfs2_sbd *sdp = rgd->rd_sbd; in try_rgrp_unlink() local
1775 down_write(&sdp->sd_log_flush_lock); in try_rgrp_unlink()
1778 up_write(&sdp->sd_log_flush_lock); in try_rgrp_unlink()
1793 error = gfs2_glock_get(sdp, block, &gfs2_inode_glops, CREATE, &gl); in try_rgrp_unlink()
1850 const struct gfs2_sbd *sdp = gl->gl_sbd; in gfs2_rgrp_congested() local
1859 st = &this_cpu_ptr(sdp->sd_lkstats)->lkstats[LM_TYPE_RGRP]; in gfs2_rgrp_congested()
1904 const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_orlov_skip() local
1908 return skip % sdp->sd_rgrps; in gfs2_orlov_skip()
1914 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_select_rgrp() local
1918 rgd = gfs2_rgrpd_get_first(sdp); in gfs2_select_rgrp()
1962 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_inplace_reserve() local
1970 if (sdp->sd_args.ar_rgrplvb) in gfs2_inplace_reserve()
1972 if (gfs2_assert_warn(sdp, ap->target)) in gfs2_inplace_reserve()
1980 rs->rs_rbm.rgd = begin = gfs2_blk2rgrpd(sdp, ip->i_goal, 1); in gfs2_inplace_reserve()
2011 if (sdp->sd_args.ar_rgrplvb) { in gfs2_inplace_reserve()
2026 if (sdp->sd_args.ar_rgrplvb) in gfs2_inplace_reserve()
2071 if (ip == GFS2_I(sdp->sd_rindex) && !sdp->sd_rindex_uptodate) { in gfs2_inplace_reserve()
2078 gfs2_log_flush(sdp, NULL, NORMAL_FLUSH); in gfs2_inplace_reserve()
2162 static struct gfs2_rgrpd *rgblk_free(struct gfs2_sbd *sdp, u64 bstart, in rgblk_free() argument
2168 rbm.rgd = gfs2_blk2rgrpd(sdp, bstart, 1); in rgblk_free()
2170 if (gfs2_consist(sdp)) in rgblk_free()
2171 fs_err(sdp, "block = %llu\n", (unsigned long long)bstart); in rgblk_free()
2225 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_rgrp_error() local
2226 fs_warn(sdp, "rgrp %llu has an error, marking it readonly until umount\n", in gfs2_rgrp_error()
2228 fs_warn(sdp, "umount on all nodes and run fsck.gfs2 to fix the error\n"); in gfs2_rgrp_error()
2317 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_alloc_blocks() local
2335 fs_warn(sdp, "inum=%llu error=%d, nblocks=%u, full=%d fail_pt=%d\n", in gfs2_alloc_blocks()
2380 gfs2_statfs_change(sdp, 0, -(s64)*nblocks, dinode ? 1 : 0); in gfs2_alloc_blocks()
2382 gfs2_trans_add_unrevoke(sdp, block, *nblocks); in gfs2_alloc_blocks()
2408 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in __gfs2_free_blocks() local
2411 rgd = rgblk_free(sdp, bstart, blen, GFS2_BLKST_FREE); in __gfs2_free_blocks()
2436 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_free_meta() local
2439 gfs2_statfs_change(sdp, 0, +blen, 0); in gfs2_free_meta()
2446 struct gfs2_sbd *sdp = GFS2_SB(inode); in gfs2_unlink_di() local
2450 rgd = rgblk_free(sdp, blkno, 1, GFS2_BLKST_UNLINKED); in gfs2_unlink_di()
2462 struct gfs2_sbd *sdp = rgd->rd_sbd; in gfs2_free_uninit_di() local
2465 tmp_rgd = rgblk_free(sdp, blkno, 1, GFS2_BLKST_FREE); in gfs2_free_uninit_di()
2468 gfs2_assert_withdraw(sdp, rgd == tmp_rgd); in gfs2_free_uninit_di()
2480 gfs2_statfs_change(sdp, 0, +1, -1); in gfs2_free_uninit_di()
2503 int gfs2_check_blk_type(struct gfs2_sbd *sdp, u64 no_addr, unsigned int type) in gfs2_check_blk_type() argument
2509 rgd = gfs2_blk2rgrpd(sdp, no_addr, 1); in gfs2_check_blk_type()
2540 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_rlist_add() local
2546 if (gfs2_assert_warn(sdp, !rlist->rl_ghs)) in gfs2_rlist_add()
2552 rgd = gfs2_blk2rgrpd(sdp, block, 1); in gfs2_rlist_add()
2554 fs_err(sdp, "rlist_add: no rgrp for block %llu\n", (unsigned long long)block); in gfs2_rlist_add()