Lines Matching refs:ufsvfsp

91 	struct ufsvfs *ufsvfsp;  in quotactl()  local
113 ufsvfsp = NULL; in quotactl()
115 ufsvfsp = (struct ufsvfs *)(vp->v_vfsp->vfs_data); in quotactl()
126 error = opendq(ufsvfsp, vp, cr); in quotactl()
130 error = closedq(ufsvfsp, cr); in quotactl()
132 invalidatedq(ufsvfsp); in quotactl()
138 error = setquota(quot.op, (uid_t)quot.uid, ufsvfsp, in quotactl()
143 error = getquota((uid_t)quot.uid, ufsvfsp, (caddr_t)quot.addr, in quotactl()
148 error = qsync(ufsvfsp); in quotactl()
165 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in opendq_scan_inode() local
170 if (ufsvfsp != (struct ufsvfs *)arg || ip == ip->i_ufsvfs->vfs_qinod) { in opendq_scan_inode()
174 ASSERT(RW_WRITE_HELD(&ufsvfsp->vfs_dqrwlock)); in opendq_scan_inode()
196 struct ufsvfs *ufsvfsp, in opendq() argument
205 if (secpolicy_fs_quota(cr, ufsvfsp->vfs_vfs) != 0) in opendq()
218 rw_enter(&ufsvfsp->vfs_dqrwlock, RW_WRITER); in opendq()
224 ASSERT((ufsvfsp->vfs_qflags & MQ_ENABLED) || (ufsvfsp->vfs_qinod == 0)); in opendq()
226 if ((ufsvfsp->vfs_qflags & MQ_ENABLED) != 0) { in opendq()
238 if (VTOI(vp) != ufsvfsp->vfs_qinod) { in opendq()
243 rw_exit(&ufsvfsp->vfs_dqrwlock); in opendq()
246 (void) quotasync(ufsvfsp, /* do_lock */ 0); in opendq()
250 qip = ufsvfsp->vfs_qinod; in opendq()
254 ufsvfsp->vfs_qinod = VTOI(vp); in opendq()
255 qip = ufsvfsp->vfs_qinod; in opendq()
278 TRANS_MATA_IGET(ufsvfsp, qip); in opendq()
287 error = getdiskquota((uid_t)0, ufsvfsp, 1, &dqp); in opendq()
290 ufsvfsp->vfs_btimelimit = in opendq()
292 ufsvfsp->vfs_ftimelimit = in opendq()
295 ufsvfsp->vfs_qflags = MQ_ENABLED; /* enable quotas */ in opendq()
296 vfs_setmntopt(ufsvfsp->vfs_vfs, MNTOPT_QUOTA, NULL, 0); in opendq()
304 ufsvfsp->vfs_qflags = 0; in opendq()
305 ufsvfsp->vfs_qinod = NULL; in opendq()
313 if (ufsvfsp->vfs_qflags & MQ_ENABLED) { in opendq()
314 (void) ufs_scan_inodes(0, opendq_scan_inode, ufsvfsp, ufsvfsp); in opendq()
317 rw_exit(&ufsvfsp->vfs_dqrwlock); in opendq()
325 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in closedq_scan_inode() local
330 if (ufsvfsp != (struct ufsvfs *)arg) in closedq_scan_inode()
333 ASSERT(RW_WRITE_HELD(&ufsvfsp->vfs_dqrwlock)); in closedq_scan_inode()
371 closedq(struct ufsvfs *ufsvfsp, struct cred *cr) in closedq() argument
375 if (secpolicy_fs_quota(cr, ufsvfsp->vfs_vfs) != 0) in closedq()
378 rw_enter(&ufsvfsp->vfs_dqrwlock, RW_WRITER); in closedq()
384 if ((ufsvfsp->vfs_qflags & MQ_ENABLED) == 0) { in closedq()
385 rw_exit(&ufsvfsp->vfs_dqrwlock); in closedq()
394 qip = ufsvfsp->vfs_qinod; in closedq()
396 return (ufs_fault(ufsvfsp->vfs_root, "closedq: NULL qip")); in closedq()
398 ufsvfsp->vfs_qflags = 0; /* disable quotas */ in closedq()
399 vfs_setmntopt(ufsvfsp->vfs_vfs, MNTOPT_NOQUOTA, NULL, 0); in closedq()
405 (void) ufs_scan_inodes(0, closedq_scan_inode, ufsvfsp, ufsvfsp); in closedq()
407 ufsvfsp->vfs_qinod = NULL; in closedq()
408 rw_exit(&ufsvfsp->vfs_dqrwlock); in closedq()
436 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in setquota_scan_inode() local
441 if (ufsvfsp != sqdp->sqd_ufsvfsp) in setquota_scan_inode()
444 ASSERT(RW_WRITE_HELD(&ufsvfsp->vfs_dqrwlock)); in setquota_scan_inode()
450 if ((ufsvfsp->vfs_qflags & MQ_ENABLED) == 0 || in setquota_scan_inode()
451 ip == ufsvfsp->vfs_qinod) { in setquota_scan_inode()
491 setquota(int cmd, uid_t uid, struct ufsvfs *ufsvfsp, in setquota() argument
503 if (secpolicy_fs_quota(cr, ufsvfsp->vfs_vfs) != 0) in setquota()
506 rw_enter(&ufsvfsp->vfs_dqrwlock, RW_WRITER); in setquota()
512 if ((ufsvfsp->vfs_qflags & MQ_ENABLED) == 0) { in setquota()
513 rw_exit(&ufsvfsp->vfs_dqrwlock); in setquota()
524 rw_exit(&ufsvfsp->vfs_dqrwlock); in setquota()
527 error = getdiskquota(uid, ufsvfsp, 0, &xdqp); in setquota()
529 rw_exit(&ufsvfsp->vfs_dqrwlock); in setquota()
547 ufsvfsp->vfs_btimelimit = in setquota()
549 ufsvfsp->vfs_ftimelimit = in setquota()
560 ufsvfsp->vfs_btimelimit; in setquota()
586 ufsvfsp->vfs_ftimelimit; in setquota()
637 qip = ufsvfsp->vfs_qinod; in setquota()
669 sqd.sqd_ufsvfsp = ufsvfsp; in setquota()
671 (void) ufs_scan_inodes(0, setquota_scan_inode, &sqd, ufsvfsp); in setquota()
673 rw_exit(&ufsvfsp->vfs_dqrwlock); in setquota()
681 getquota(uid_t uid, struct ufsvfs *ufsvfsp, caddr_t addr, cred_t *cr) in getquota() argument
689 secpolicy_fs_quota(cr, ufsvfsp->vfs_vfs) != 0) in getquota()
691 rw_enter(&ufsvfsp->vfs_dqrwlock, RW_READER); in getquota()
692 if ((ufsvfsp->vfs_qflags & MQ_ENABLED) == 0) { in getquota()
693 rw_exit(&ufsvfsp->vfs_dqrwlock); in getquota()
696 error = getdiskquota(uid, ufsvfsp, 0, &xdqp); in getquota()
698 rw_exit(&ufsvfsp->vfs_dqrwlock); in getquota()
711 rw_exit(&ufsvfsp->vfs_dqrwlock); in getquota()
721 qsync(struct ufsvfs *ufsvfsp) in qsync() argument
723 return (quotasync(ufsvfsp, /* do_lock */ 1)); in qsync()
736 quotasync(struct ufsvfs *ufsvfsp, int do_lock) in quotasync() argument
750 if (ufsvfsp) { in quotasync()
752 rw_enter(&ufsvfsp->vfs_dqrwlock, RW_READER); in quotasync()
758 if ((ufsvfsp->vfs_qflags & MQ_ENABLED) == 0) { in quotasync()
760 rw_exit(&ufsvfsp->vfs_dqrwlock); in quotasync()
771 if (TRANS_ISTRANS(ufsvfsp)) { in quotasync()
773 rw_exit(&ufsvfsp->vfs_dqrwlock); in quotasync()
794 if (dqp->dq_ufsvfsp == ufsvfsp && in quotasync()
796 ASSERT(ufsvfsp->vfs_qflags & MQ_ENABLED); in quotasync()
803 rw_exit(&ufsvfsp->vfs_dqrwlock); in quotasync()
821 ufsvfsp = dqp->dq_ufsvfsp; /* shorthand */ in quotasync()
827 if ((dqp->dq_flags & DQ_MOD) == 0 || ufsvfsp == NULL) { in quotasync()
846 if (rw_tryenter(&ufsvfsp->vfs_dqrwlock, in quotasync()
872 ASSERT(ufsvfsp->vfs_qflags & MQ_ENABLED); in quotasync()
878 if (!TRANS_ISTRANS(ufsvfsp)) { in quotasync()
889 rw_exit(&ufsvfsp->vfs_dqrwlock); in quotasync()