Lines Matching refs:ip

601 void check_and_update_goal(struct gfs2_inode *ip)  in check_and_update_goal()  argument
603 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in check_and_update_goal()
604 if (!ip->i_goal || gfs2_blk2rgrpd(sdp, ip->i_goal, 1) == NULL) in check_and_update_goal()
605 ip->i_goal = ip->i_no_addr; in check_and_update_goal()
622 struct gfs2_inode *ip = container_of(rs, struct gfs2_inode, i_res); in dump_rs() local
626 (unsigned long long)ip->i_no_addr, in dump_rs()
685 void gfs2_rs_delete(struct gfs2_inode *ip) in gfs2_rs_delete() argument
687 struct inode *inode = &ip->i_inode; in gfs2_rs_delete()
689 down_write(&ip->i_rw_mutex); in gfs2_rs_delete()
691 gfs2_rs_deltree(&ip->i_res); in gfs2_rs_delete()
692 up_write(&ip->i_rw_mutex); in gfs2_rs_delete()
845 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_ri_total() local
854 error = gfs2_internal_read(ip, buf, &pos, in gfs2_ri_total()
895 static int read_rindex_entry(struct gfs2_inode *ip) in read_rindex_entry() argument
897 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in read_rindex_entry()
903 if (pos >= i_size_read(&ip->i_inode)) in read_rindex_entry()
906 error = gfs2_internal_read(ip, (char *)&buf, &pos, in read_rindex_entry()
995 static int gfs2_ri_update(struct gfs2_inode *ip) in gfs2_ri_update() argument
997 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_ri_update()
1001 error = read_rindex_entry(ip); in gfs2_ri_update()
1036 struct gfs2_inode *ip = GFS2_I(sdp->sd_rindex); in gfs2_rindex_update() local
1037 struct gfs2_glock *gl = ip->i_gl; in gfs2_rindex_update()
1051 error = gfs2_ri_update(ip); in gfs2_rindex_update()
1488 static void rs_insert(struct gfs2_inode *ip) in rs_insert() argument
1492 struct gfs2_blkreserv *rs = &ip->i_res; in rs_insert()
1562 static void rg_mblk_search(struct gfs2_rgrpd *rgd, struct gfs2_inode *ip, in rg_mblk_search() argument
1567 struct gfs2_blkreserv *rs = &ip->i_res; in rg_mblk_search()
1571 struct inode *inode = &ip->i_inode; in rg_mblk_search()
1585 extlen = max_t(u32, atomic_read(&ip->i_sizehint), ap->target); in rg_mblk_search()
1592 if (rgrp_contains_block(rgd, ip->i_goal)) in rg_mblk_search()
1593 goal = ip->i_goal; in rg_mblk_search()
1600 ret = gfs2_rbm_find(&rbm, GFS2_BLKST_FREE, &extlen, &ip->i_res, true); in rg_mblk_search()
1604 rs_insert(ip); in rg_mblk_search()
1847 struct gfs2_inode *ip; in try_rgrp_unlink() local
1880 ip = gl->gl_object; in try_rgrp_unlink()
1882 if (ip || !gfs2_queue_try_to_evict(gl)) in try_rgrp_unlink()
1987 static u32 gfs2_orlov_skip(const struct gfs2_inode *ip) in gfs2_orlov_skip() argument
1989 const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_orlov_skip()
2045 int gfs2_inplace_reserve(struct gfs2_inode *ip, struct gfs2_alloc_parms *ap) in gfs2_inplace_reserve() argument
2047 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_inplace_reserve()
2049 struct gfs2_blkreserv *rs = &ip->i_res; in gfs2_inplace_reserve()
2066 rgrp_contains_block(rs->rs_rgd, ip->i_goal)) { in gfs2_inplace_reserve()
2069 check_and_update_goal(ip); in gfs2_inplace_reserve()
2070 rs->rs_rgd = begin = gfs2_blk2rgrpd(sdp, ip->i_goal, 1); in gfs2_inplace_reserve()
2072 if (S_ISDIR(ip->i_inode.i_mode) && (ap->aflags & GFS2_AF_ORLOV)) in gfs2_inplace_reserve()
2073 skip = gfs2_orlov_skip(ip); in gfs2_inplace_reserve()
2097 &ip->i_rgd_gh); in gfs2_inplace_reserve()
2106 &ip->i_rgd_gh); in gfs2_inplace_reserve()
2109 gfs2_glock_dq_uninit(&ip->i_rgd_gh); in gfs2_inplace_reserve()
2122 error = gfs2_instantiate(&ip->i_rgd_gh); in gfs2_inplace_reserve()
2129 rg_mblk_search(rs->rs_rgd, ip, ap); in gfs2_inplace_reserve()
2155 ip->i_no_addr); in gfs2_inplace_reserve()
2165 gfs2_glock_dq_uninit(&ip->i_rgd_gh); in gfs2_inplace_reserve()
2179 if (ip == GFS2_I(sdp->sd_rindex) && !sdp->sd_rindex_uptodate) { in gfs2_inplace_reserve()
2180 error = gfs2_ri_update(ip); in gfs2_inplace_reserve()
2203 void gfs2_inplace_release(struct gfs2_inode *ip) in gfs2_inplace_release() argument
2205 struct gfs2_blkreserv *rs = &ip->i_res; in gfs2_inplace_release()
2216 if (gfs2_holder_initialized(&ip->i_rgd_gh)) in gfs2_inplace_release()
2217 gfs2_glock_dq_uninit(&ip->i_rgd_gh); in gfs2_inplace_release()
2348 static void gfs2_adjust_reservation(struct gfs2_inode *ip, in gfs2_adjust_reservation() argument
2351 struct gfs2_blkreserv *rs = &ip->i_res; in gfs2_adjust_reservation()
2372 atomic_add(RGRP_RSRV_ADDBLKS, &ip->i_sizehint); in gfs2_adjust_reservation()
2390 const struct gfs2_inode *ip, bool dinode) in gfs2_set_alloc_start() argument
2394 if (gfs2_rs_active(&ip->i_res)) { in gfs2_set_alloc_start()
2395 goal = ip->i_res.rs_start; in gfs2_set_alloc_start()
2397 if (!dinode && rgrp_contains_block(rbm->rgd, ip->i_goal)) in gfs2_set_alloc_start()
2398 goal = ip->i_goal; in gfs2_set_alloc_start()
2418 int gfs2_alloc_blocks(struct gfs2_inode *ip, u64 *bn, unsigned int *nblocks, in gfs2_alloc_blocks() argument
2421 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_alloc_blocks()
2423 struct gfs2_rbm rbm = { .rgd = ip->i_res.rs_rgd, }; in gfs2_alloc_blocks()
2428 BUG_ON(ip->i_res.rs_reserved < *nblocks); in gfs2_alloc_blocks()
2431 if (gfs2_rs_active(&ip->i_res)) { in gfs2_alloc_blocks()
2432 gfs2_set_alloc_start(&rbm, ip, dinode); in gfs2_alloc_blocks()
2433 error = gfs2_rbm_find(&rbm, GFS2_BLKST_FREE, &minext, &ip->i_res, false); in gfs2_alloc_blocks()
2436 gfs2_set_alloc_start(&rbm, ip, dinode); in gfs2_alloc_blocks()
2443 (unsigned long long)ip->i_no_addr, error, *nblocks, in gfs2_alloc_blocks()
2453 ip->i_goal = block + *nblocks - 1; in gfs2_alloc_blocks()
2454 error = gfs2_meta_inode_buffer(ip, &dibh); in gfs2_alloc_blocks()
2458 gfs2_trans_add_meta(ip->i_gl, dibh); in gfs2_alloc_blocks()
2460 cpu_to_be64(ip->i_goal); in gfs2_alloc_blocks()
2465 gfs2_adjust_reservation(ip, &rbm, *nblocks); in gfs2_alloc_blocks()
2485 ip->i_generation = generation; in gfs2_alloc_blocks()
2496 gfs2_quota_change(ip, *nblocks, ip->i_inode.i_uid, ip->i_inode.i_gid); in gfs2_alloc_blocks()
2498 trace_gfs2_block_alloc(ip, rbm.rgd, block, *nblocks, in gfs2_alloc_blocks()
2519 void __gfs2_free_blocks(struct gfs2_inode *ip, struct gfs2_rgrpd *rgd, in __gfs2_free_blocks() argument
2522 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in __gfs2_free_blocks()
2526 trace_gfs2_block_alloc(ip, rgd, bstart, blen, GFS2_BLKST_FREE); in __gfs2_free_blocks()
2534 if (meta || ip->i_depth || gfs2_is_jdata(ip)) in __gfs2_free_blocks()
2535 gfs2_journal_wipe(ip, bstart, blen); in __gfs2_free_blocks()
2547 void gfs2_free_meta(struct gfs2_inode *ip, struct gfs2_rgrpd *rgd, in gfs2_free_meta() argument
2550 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_free_meta()
2552 __gfs2_free_blocks(ip, rgd, bstart, blen, 1); in gfs2_free_meta()
2554 gfs2_quota_change(ip, -(s64)blen, ip->i_inode.i_uid, ip->i_inode.i_gid); in gfs2_free_meta()
2559 struct gfs2_inode *ip = GFS2_I(inode); in gfs2_unlink_di() local
2562 u64 blkno = ip->i_no_addr; in gfs2_unlink_di()
2569 trace_gfs2_block_alloc(ip, rgd, blkno, 1, GFS2_BLKST_UNLINKED); in gfs2_unlink_di()
2576 void gfs2_free_di(struct gfs2_rgrpd *rgd, struct gfs2_inode *ip) in gfs2_free_di() argument
2581 rgblk_free(sdp, rgd, ip->i_no_addr, 1, GFS2_BLKST_FREE); in gfs2_free_di()
2593 trace_gfs2_block_alloc(ip, rgd, ip->i_no_addr, 1, GFS2_BLKST_FREE); in gfs2_free_di()
2594 gfs2_quota_change(ip, -1, ip->i_inode.i_uid, ip->i_inode.i_gid); in gfs2_free_di()
2595 gfs2_journal_wipe(ip, ip->i_no_addr, 1); in gfs2_free_di()
2660 void gfs2_rlist_add(struct gfs2_inode *ip, struct gfs2_rgrp_list *rlist, in gfs2_rlist_add() argument
2663 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_rlist_add()
2682 rgd = ip->i_res.rs_rgd; in gfs2_rlist_add()