Lines Matching refs:ip

371 	struct gfs2_inode *ip = GFS2_I(sdp->sd_qc_inode);  in bh_get()  local
387 bh_map.b_size = 1 << ip->i_inode.i_blkbits; in bh_get()
388 error = gfs2_block_map(&ip->i_inode, block, &bh_map, 0); in bh_get()
391 error = gfs2_meta_read(ip->i_gl, bh_map.b_blocknr, DIO_WAIT, &bh); in bh_get()
530 int gfs2_quota_hold(struct gfs2_inode *ip, kuid_t uid, kgid_t gid) in gfs2_quota_hold() argument
532 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_quota_hold()
536 if (ip->i_res == NULL) { in gfs2_quota_hold()
537 error = gfs2_rs_alloc(ip); in gfs2_quota_hold()
542 qd = ip->i_res->rs_qa_qd; in gfs2_quota_hold()
544 if (gfs2_assert_warn(sdp, !ip->i_res->rs_qa_qd_num) || in gfs2_quota_hold()
545 gfs2_assert_warn(sdp, !test_bit(GIF_QD_LOCKED, &ip->i_flags))) in gfs2_quota_hold()
551 error = qdsb_get(sdp, make_kqid_uid(ip->i_inode.i_uid), qd); in gfs2_quota_hold()
554 ip->i_res->rs_qa_qd_num++; in gfs2_quota_hold()
557 error = qdsb_get(sdp, make_kqid_gid(ip->i_inode.i_gid), qd); in gfs2_quota_hold()
560 ip->i_res->rs_qa_qd_num++; in gfs2_quota_hold()
564 !uid_eq(uid, ip->i_inode.i_uid)) { in gfs2_quota_hold()
568 ip->i_res->rs_qa_qd_num++; in gfs2_quota_hold()
573 !gid_eq(gid, ip->i_inode.i_gid)) { in gfs2_quota_hold()
577 ip->i_res->rs_qa_qd_num++; in gfs2_quota_hold()
583 gfs2_quota_unhold(ip); in gfs2_quota_hold()
587 void gfs2_quota_unhold(struct gfs2_inode *ip) in gfs2_quota_unhold() argument
589 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_quota_unhold()
592 if (ip->i_res == NULL) in gfs2_quota_unhold()
594 gfs2_assert_warn(sdp, !test_bit(GIF_QD_LOCKED, &ip->i_flags)); in gfs2_quota_unhold()
596 for (x = 0; x < ip->i_res->rs_qa_qd_num; x++) { in gfs2_quota_unhold()
597 qdsb_put(ip->i_res->rs_qa_qd[x]); in gfs2_quota_unhold()
598 ip->i_res->rs_qa_qd[x] = NULL; in gfs2_quota_unhold()
600 ip->i_res->rs_qa_qd_num = 0; in gfs2_quota_unhold()
618 struct gfs2_inode *ip = GFS2_I(sdp->sd_qc_inode); in do_qc() local
623 gfs2_trans_add_meta(ip->i_gl, qd->qd_bh); in do_qc()
669 static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc, in gfs2_adjust_quota() argument
673 struct inode *inode = &ip->i_inode; in gfs2_adjust_quota()
686 if (gfs2_is_stuffed(ip)) { in gfs2_adjust_quota()
687 err = gfs2_unstuff_dinode(ip, NULL); in gfs2_adjust_quota()
693 err = gfs2_internal_read(ip, (char *)&q, &loc, sizeof(q)); in gfs2_adjust_quota()
756 gfs2_trans_add_data(ip->i_gl, bh); in gfs2_adjust_quota()
794 struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode); in do_sync() local
805 error = gfs2_rs_alloc(ip); in do_sync()
809 gfs2_write_calc_reserv(ip, sizeof(struct gfs2_quota), in do_sync()
817 mutex_lock(&ip->i_inode.i_mutex); in do_sync()
825 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &i_gh); in do_sync()
831 if (gfs2_write_alloc_required(ip, offset, in do_sync()
849 error = gfs2_inplace_reserve(ip, &ap); in do_sync()
854 blocks += gfs2_rg_blocks(ip, reserved) + nalloc * ind_blocks + RES_STATFS; in do_sync()
863 error = gfs2_adjust_quota(ip, offset, qd->qd_change_sync, qd, NULL); in do_sync()
876 gfs2_inplace_release(ip); in do_sync()
882 mutex_unlock(&ip->i_inode.i_mutex); in do_sync()
884 gfs2_log_flush(ip->i_gl->gl_sbd, ip->i_gl, NORMAL_FLUSH); in do_sync()
890 struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode); in update_qd() local
898 error = gfs2_internal_read(ip, (char *)&q, &pos, sizeof(q)); in update_qd()
917 struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode); in do_glock() local
938 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &i_gh); in do_glock()
961 int gfs2_quota_lock(struct gfs2_inode *ip, kuid_t uid, kgid_t gid) in gfs2_quota_lock() argument
963 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_quota_lock()
968 error = gfs2_quota_hold(ip, uid, gid); in gfs2_quota_lock()
976 sort(ip->i_res->rs_qa_qd, ip->i_res->rs_qa_qd_num, in gfs2_quota_lock()
979 for (x = 0; x < ip->i_res->rs_qa_qd_num; x++) { in gfs2_quota_lock()
980 qd = ip->i_res->rs_qa_qd[x]; in gfs2_quota_lock()
981 error = do_glock(qd, NO_FORCE, &ip->i_res->rs_qa_qd_ghs[x]); in gfs2_quota_lock()
987 set_bit(GIF_QD_LOCKED, &ip->i_flags); in gfs2_quota_lock()
990 gfs2_glock_dq_uninit(&ip->i_res->rs_qa_qd_ghs[x]); in gfs2_quota_lock()
991 gfs2_quota_unhold(ip); in gfs2_quota_lock()
1033 void gfs2_quota_unlock(struct gfs2_inode *ip) in gfs2_quota_unlock() argument
1035 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_quota_unlock()
1041 if (!test_and_clear_bit(GIF_QD_LOCKED, &ip->i_flags)) in gfs2_quota_unlock()
1044 for (x = 0; x < ip->i_res->rs_qa_qd_num; x++) { in gfs2_quota_unlock()
1048 qd = ip->i_res->rs_qa_qd[x]; in gfs2_quota_unlock()
1051 gfs2_glock_dq_uninit(&ip->i_res->rs_qa_qd_ghs[x]); in gfs2_quota_unlock()
1080 gfs2_quota_unhold(ip); in gfs2_quota_unlock()
1114 int gfs2_quota_check(struct gfs2_inode *ip, kuid_t uid, kgid_t gid, in gfs2_quota_check() argument
1117 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); in gfs2_quota_check()
1124 if (!test_bit(GIF_QD_LOCKED, &ip->i_flags)) in gfs2_quota_check()
1130 for (x = 0; x < ip->i_res->rs_qa_qd_num; x++) { in gfs2_quota_check()
1131 qd = ip->i_res->rs_qa_qd[x]; in gfs2_quota_check()
1171 void gfs2_quota_change(struct gfs2_inode *ip, s64 change, in gfs2_quota_change() argument
1177 if (gfs2_assert_warn(GFS2_SB(&ip->i_inode), change)) in gfs2_quota_change()
1179 if (ip->i_diskflags & GFS2_DIF_SYSTEM) in gfs2_quota_change()
1182 for (x = 0; x < ip->i_res->rs_qa_qd_num; x++) { in gfs2_quota_change()
1183 qd = ip->i_res->rs_qa_qd[x]; in gfs2_quota_change()
1258 struct gfs2_inode *ip = GFS2_I(sdp->sd_qc_inode); in gfs2_quota_init() local
1290 error = gfs2_extent_map(&ip->i_inode, x, &new, &dblock, &extlen); in gfs2_quota_init()
1295 bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); in gfs2_quota_init()
1418 struct gfs2_inode *ip; in quotad_check_trunc_list() local
1421 ip = NULL; in quotad_check_trunc_list()
1424 ip = list_entry(sdp->sd_trunc_list.next, in quotad_check_trunc_list()
1426 list_del_init(&ip->i_trunc_list); in quotad_check_trunc_list()
1429 if (ip == NULL) in quotad_check_trunc_list()
1431 gfs2_glock_finish_truncate(ip); in quotad_check_trunc_list()
1571 struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode); in gfs2_set_dqblk() local
1594 error = gfs2_rs_alloc(ip); in gfs2_set_dqblk()
1598 mutex_lock(&ip->i_inode.i_mutex); in gfs2_set_dqblk()
1602 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &i_gh); in gfs2_set_dqblk()
1628 alloc_required = gfs2_write_alloc_required(ip, offset, sizeof(struct gfs2_quota)); in gfs2_set_dqblk()
1629 if (gfs2_is_stuffed(ip)) in gfs2_set_dqblk()
1633 gfs2_write_calc_reserv(ip, sizeof(struct gfs2_quota), in gfs2_set_dqblk()
1637 error = gfs2_inplace_reserve(ip, &ap); in gfs2_set_dqblk()
1640 blocks += gfs2_rg_blocks(ip, blocks); in gfs2_set_dqblk()
1650 error = gfs2_adjust_quota(ip, offset, 0, qd, fdq); in gfs2_set_dqblk()
1655 gfs2_inplace_release(ip); in gfs2_set_dqblk()
1661 mutex_unlock(&ip->i_inode.i_mutex); in gfs2_set_dqblk()