Lines Matching refs:mp
48 struct xfs_mount *mp, in xfs_qm_dquot_walk() argument
53 struct xfs_quotainfo *qi = mp->m_quotainfo; in xfs_qm_dquot_walk()
121 struct xfs_mount *mp = dqp->q_mount; in xfs_qm_dqpurge() local
122 struct xfs_quotainfo *qi = mp->m_quotainfo; in xfs_qm_dqpurge()
156 ASSERT(XFS_FORCED_SHUTDOWN(mp) || in xfs_qm_dqpurge()
172 XFS_STATS_DEC(mp, xs_qm_dquot_unused); in xfs_qm_dqpurge()
183 struct xfs_mount *mp, in xfs_qm_dqpurge_all() argument
187 xfs_qm_dquot_walk(mp, XFS_DQ_USER, xfs_qm_dqpurge, NULL); in xfs_qm_dqpurge_all()
189 xfs_qm_dquot_walk(mp, XFS_DQ_GROUP, xfs_qm_dqpurge, NULL); in xfs_qm_dqpurge_all()
191 xfs_qm_dquot_walk(mp, XFS_DQ_PROJ, xfs_qm_dqpurge, NULL); in xfs_qm_dqpurge_all()
199 struct xfs_mount *mp) in xfs_qm_unmount() argument
201 if (mp->m_quotainfo) { in xfs_qm_unmount()
202 xfs_qm_dqpurge_all(mp, XFS_QMOPT_QUOTALL); in xfs_qm_unmount()
203 xfs_qm_destroy_quotainfo(mp); in xfs_qm_unmount()
212 xfs_mount_t *mp) in xfs_qm_unmount_quotas() argument
218 ASSERT(mp->m_rootip); in xfs_qm_unmount_quotas()
219 xfs_qm_dqdetach(mp->m_rootip); in xfs_qm_unmount_quotas()
220 if (mp->m_rbmip) in xfs_qm_unmount_quotas()
221 xfs_qm_dqdetach(mp->m_rbmip); in xfs_qm_unmount_quotas()
222 if (mp->m_rsumip) in xfs_qm_unmount_quotas()
223 xfs_qm_dqdetach(mp->m_rsumip); in xfs_qm_unmount_quotas()
228 if (mp->m_quotainfo) { in xfs_qm_unmount_quotas()
229 if (mp->m_quotainfo->qi_uquotaip) { in xfs_qm_unmount_quotas()
230 xfs_irele(mp->m_quotainfo->qi_uquotaip); in xfs_qm_unmount_quotas()
231 mp->m_quotainfo->qi_uquotaip = NULL; in xfs_qm_unmount_quotas()
233 if (mp->m_quotainfo->qi_gquotaip) { in xfs_qm_unmount_quotas()
234 xfs_irele(mp->m_quotainfo->qi_gquotaip); in xfs_qm_unmount_quotas()
235 mp->m_quotainfo->qi_gquotaip = NULL; in xfs_qm_unmount_quotas()
237 if (mp->m_quotainfo->qi_pquotaip) { in xfs_qm_unmount_quotas()
238 xfs_irele(mp->m_quotainfo->qi_pquotaip); in xfs_qm_unmount_quotas()
239 mp->m_quotainfo->qi_pquotaip = NULL; in xfs_qm_unmount_quotas()
294 struct xfs_mount *mp = ip->i_mount; in xfs_qm_need_dqattach() local
296 if (!XFS_IS_QUOTA_RUNNING(mp)) in xfs_qm_need_dqattach()
298 if (!XFS_IS_QUOTA_ON(mp)) in xfs_qm_need_dqattach()
300 if (!XFS_NOT_DQATTACHED(mp, ip)) in xfs_qm_need_dqattach()
302 if (xfs_is_quota_inode(&mp->m_sb, ip->i_ino)) in xfs_qm_need_dqattach()
319 xfs_mount_t *mp = ip->i_mount; in xfs_qm_dqattach_locked() local
327 if (XFS_IS_UQUOTA_ON(mp) && !ip->i_udquot) { in xfs_qm_dqattach_locked()
335 if (XFS_IS_GQUOTA_ON(mp) && !ip->i_gdquot) { in xfs_qm_dqattach_locked()
343 if (XFS_IS_PQUOTA_ON(mp) && !ip->i_pdquot) { in xfs_qm_dqattach_locked()
542 xfs_mount_t *mp, in xfs_qm_set_defquota() argument
551 error = xfs_qm_dqget_uncached(mp, 0, type, &dqp); in xfs_qm_set_defquota()
574 struct xfs_mount *mp, in xfs_qm_init_timelimits() argument
600 if (XFS_IS_UQUOTA_RUNNING(mp)) in xfs_qm_init_timelimits()
602 else if (XFS_IS_GQUOTA_RUNNING(mp)) in xfs_qm_init_timelimits()
606 error = xfs_qm_dqget_uncached(mp, 0, type, &dqp); in xfs_qm_init_timelimits()
638 struct xfs_mount *mp) in xfs_qm_init_quotainfo() argument
643 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_init_quotainfo()
645 qinf = mp->m_quotainfo = kmem_zalloc(sizeof(xfs_quotainfo_t), 0); in xfs_qm_init_quotainfo()
655 error = xfs_qm_init_quotainos(mp); in xfs_qm_init_quotainfo()
668 qinf->qi_dqchunklen = XFS_FSB_TO_BB(mp, XFS_DQUOT_CLUSTER_SIZE_FSB); in xfs_qm_init_quotainfo()
671 mp->m_qflags |= (mp->m_sb.sb_qflags & XFS_ALL_QUOTA_CHKD); in xfs_qm_init_quotainfo()
673 xfs_qm_init_timelimits(mp, qinf); in xfs_qm_init_quotainfo()
675 if (XFS_IS_UQUOTA_RUNNING(mp)) in xfs_qm_init_quotainfo()
676 xfs_qm_set_defquota(mp, XFS_DQ_USER, qinf); in xfs_qm_init_quotainfo()
677 if (XFS_IS_GQUOTA_RUNNING(mp)) in xfs_qm_init_quotainfo()
678 xfs_qm_set_defquota(mp, XFS_DQ_GROUP, qinf); in xfs_qm_init_quotainfo()
679 if (XFS_IS_PQUOTA_RUNNING(mp)) in xfs_qm_init_quotainfo()
680 xfs_qm_set_defquota(mp, XFS_DQ_PROJ, qinf); in xfs_qm_init_quotainfo()
701 mp->m_quotainfo = NULL; in xfs_qm_init_quotainfo()
712 xfs_mount_t *mp) in xfs_qm_destroy_quotainfo() argument
716 qi = mp->m_quotainfo; in xfs_qm_destroy_quotainfo()
725 mp->m_quotainfo = NULL; in xfs_qm_destroy_quotainfo()
734 xfs_mount_t *mp, in xfs_qm_qino_alloc() argument
750 if (!xfs_sb_version_has_pquotino(&mp->m_sb) && in xfs_qm_qino_alloc()
755 (mp->m_sb.sb_gquotino != NULLFSINO)) { in xfs_qm_qino_alloc()
756 ino = mp->m_sb.sb_gquotino; in xfs_qm_qino_alloc()
757 ASSERT(mp->m_sb.sb_pquotino == NULLFSINO); in xfs_qm_qino_alloc()
759 (mp->m_sb.sb_pquotino != NULLFSINO)) { in xfs_qm_qino_alloc()
760 ino = mp->m_sb.sb_pquotino; in xfs_qm_qino_alloc()
761 ASSERT(mp->m_sb.sb_gquotino == NULLFSINO); in xfs_qm_qino_alloc()
764 error = xfs_iget(mp, NULL, ino, 0, 0, ip); in xfs_qm_qino_alloc()
767 mp->m_sb.sb_gquotino = NULLFSINO; in xfs_qm_qino_alloc()
768 mp->m_sb.sb_pquotino = NULLFSINO; in xfs_qm_qino_alloc()
773 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_create, in xfs_qm_qino_alloc()
774 XFS_QM_QINOCREATE_SPACE_RES(mp), 0, 0, &tp); in xfs_qm_qino_alloc()
791 spin_lock(&mp->m_sb_lock); in xfs_qm_qino_alloc()
793 ASSERT(!xfs_sb_version_hasquota(&mp->m_sb)); in xfs_qm_qino_alloc()
795 xfs_sb_version_addquota(&mp->m_sb); in xfs_qm_qino_alloc()
796 mp->m_sb.sb_uquotino = NULLFSINO; in xfs_qm_qino_alloc()
797 mp->m_sb.sb_gquotino = NULLFSINO; in xfs_qm_qino_alloc()
798 mp->m_sb.sb_pquotino = NULLFSINO; in xfs_qm_qino_alloc()
801 mp->m_sb.sb_qflags = mp->m_qflags & XFS_ALL_QUOTA_ACCT; in xfs_qm_qino_alloc()
804 mp->m_sb.sb_uquotino = (*ip)->i_ino; in xfs_qm_qino_alloc()
806 mp->m_sb.sb_gquotino = (*ip)->i_ino; in xfs_qm_qino_alloc()
808 mp->m_sb.sb_pquotino = (*ip)->i_ino; in xfs_qm_qino_alloc()
809 spin_unlock(&mp->m_sb_lock); in xfs_qm_qino_alloc()
814 ASSERT(XFS_FORCED_SHUTDOWN(mp)); in xfs_qm_qino_alloc()
815 xfs_alert(mp, "%s failed (error %d)!", __func__, error); in xfs_qm_qino_alloc()
825 xfs_mount_t *mp, in xfs_qm_reset_dqcounts() argument
841 j = (int)XFS_FSB_TO_B(mp, XFS_DQUOT_CLUSTER_SIZE_FSB) / in xfs_qm_reset_dqcounts()
843 ASSERT(mp->m_quotainfo->qi_dqperchunk == j); in xfs_qm_reset_dqcounts()
846 for (j = 0; j < mp->m_quotainfo->qi_dqperchunk; j++) { in xfs_qm_reset_dqcounts()
857 fa = xfs_dqblk_verify(mp, &dqb[j], id + j, type); in xfs_qm_reset_dqcounts()
859 xfs_dqblk_repair(mp, &dqb[j], id + j, type); in xfs_qm_reset_dqcounts()
876 if (xfs_sb_version_hascrc(&mp->m_sb)) { in xfs_qm_reset_dqcounts()
886 struct xfs_mount *mp, in xfs_qm_reset_dqcounts_all() argument
912 error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, in xfs_qm_reset_dqcounts_all()
913 XFS_FSB_TO_DADDR(mp, bno), in xfs_qm_reset_dqcounts_all()
914 mp->m_quotainfo->qi_dqchunklen, 0, &bp, in xfs_qm_reset_dqcounts_all()
925 error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, in xfs_qm_reset_dqcounts_all()
926 XFS_FSB_TO_DADDR(mp, bno), in xfs_qm_reset_dqcounts_all()
927 mp->m_quotainfo->qi_dqchunklen, 0, &bp, in xfs_qm_reset_dqcounts_all()
940 xfs_qm_reset_dqcounts(mp, bp, firstid, type); in xfs_qm_reset_dqcounts_all()
946 firstid += mp->m_quotainfo->qi_dqperchunk; in xfs_qm_reset_dqcounts_all()
958 struct xfs_mount *mp, in xfs_qm_reset_dqcounts_buf() argument
984 maxlblkcnt = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes); in xfs_qm_reset_dqcounts_buf()
1013 mp->m_quotainfo->qi_dqperchunk; in xfs_qm_reset_dqcounts_buf()
1022 xfs_buf_readahead(mp->m_ddev_targp, in xfs_qm_reset_dqcounts_buf()
1023 XFS_FSB_TO_DADDR(mp, rablkno), in xfs_qm_reset_dqcounts_buf()
1024 mp->m_quotainfo->qi_dqchunklen, in xfs_qm_reset_dqcounts_buf()
1033 error = xfs_qm_reset_dqcounts_all(mp, firstid, in xfs_qm_reset_dqcounts_buf()
1062 struct xfs_mount *mp = ip->i_mount; in xfs_qm_quotacheck_dqadjust() local
1068 error = xfs_qm_dqget(mp, id, type, true, &dqp); in xfs_qm_quotacheck_dqadjust()
1101 xfs_qm_adjust_dqlimits(mp, dqp); in xfs_qm_quotacheck_dqadjust()
1102 xfs_qm_adjust_dqtimers(mp, &dqp->q_core); in xfs_qm_quotacheck_dqadjust()
1117 struct xfs_mount *mp, in xfs_qm_dqusage_adjust() argument
1127 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_dqusage_adjust()
1133 if (xfs_is_quota_inode(&mp->m_sb, ino)) in xfs_qm_dqusage_adjust()
1140 error = xfs_iget(mp, tp, ino, XFS_IGET_DONTCACHE, 0, &ip); in xfs_qm_dqusage_adjust()
1174 if (XFS_IS_UQUOTA_ON(mp)) { in xfs_qm_dqusage_adjust()
1181 if (XFS_IS_GQUOTA_ON(mp)) { in xfs_qm_dqusage_adjust()
1188 if (XFS_IS_PQUOTA_ON(mp)) { in xfs_qm_dqusage_adjust()
1205 struct xfs_mount *mp = dqp->q_mount; in xfs_qm_flush_one() local
1226 bp = xfs_buf_incore(mp->m_ddev_targp, dqp->q_blkno, in xfs_qm_flush_one()
1227 mp->m_quotainfo->qi_dqchunklen, 0); in xfs_qm_flush_one()
1258 xfs_mount_t *mp) in xfs_qm_quotacheck() argument
1263 struct xfs_inode *uip = mp->m_quotainfo->qi_uquotaip; in xfs_qm_quotacheck()
1264 struct xfs_inode *gip = mp->m_quotainfo->qi_gquotaip; in xfs_qm_quotacheck()
1265 struct xfs_inode *pip = mp->m_quotainfo->qi_pquotaip; in xfs_qm_quotacheck()
1270 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_quotacheck()
1272 xfs_notice(mp, "Quotacheck needed: Please wait."); in xfs_qm_quotacheck()
1280 error = xfs_qm_reset_dqcounts_buf(mp, uip, XFS_QMOPT_UQUOTA, in xfs_qm_quotacheck()
1288 error = xfs_qm_reset_dqcounts_buf(mp, gip, XFS_QMOPT_GQUOTA, in xfs_qm_quotacheck()
1296 error = xfs_qm_reset_dqcounts_buf(mp, pip, XFS_QMOPT_PQUOTA, in xfs_qm_quotacheck()
1303 error = xfs_iwalk_threaded(mp, 0, 0, xfs_qm_dqusage_adjust, 0, true, in xfs_qm_quotacheck()
1312 if (XFS_IS_UQUOTA_ON(mp)) { in xfs_qm_quotacheck()
1313 error = xfs_qm_dquot_walk(mp, XFS_DQ_USER, xfs_qm_flush_one, in xfs_qm_quotacheck()
1316 if (XFS_IS_GQUOTA_ON(mp)) { in xfs_qm_quotacheck()
1317 error2 = xfs_qm_dquot_walk(mp, XFS_DQ_GROUP, xfs_qm_flush_one, in xfs_qm_quotacheck()
1322 if (XFS_IS_PQUOTA_ON(mp)) { in xfs_qm_quotacheck()
1323 error2 = xfs_qm_dquot_walk(mp, XFS_DQ_PROJ, xfs_qm_flush_one, in xfs_qm_quotacheck()
1341 xfs_qm_dqpurge_all(mp, XFS_QMOPT_QUOTALL); in xfs_qm_quotacheck()
1350 mp->m_qflags &= ~XFS_ALL_QUOTA_CHKD; in xfs_qm_quotacheck()
1351 mp->m_qflags |= flags; in xfs_qm_quotacheck()
1357 xfs_warn(mp, in xfs_qm_quotacheck()
1363 ASSERT(mp->m_quotainfo != NULL); in xfs_qm_quotacheck()
1364 xfs_qm_destroy_quotainfo(mp); in xfs_qm_quotacheck()
1365 if (xfs_mount_reset_sbqflags(mp)) { in xfs_qm_quotacheck()
1366 xfs_warn(mp, in xfs_qm_quotacheck()
1370 xfs_notice(mp, "Quotacheck: Done."); in xfs_qm_quotacheck()
1385 struct xfs_mount *mp) in xfs_qm_mount_quotas() argument
1394 if (mp->m_sb.sb_rextents) { in xfs_qm_mount_quotas()
1395 xfs_notice(mp, "Cannot turn on quotas for realtime filesystem"); in xfs_qm_mount_quotas()
1396 mp->m_qflags = 0; in xfs_qm_mount_quotas()
1400 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_mount_quotas()
1406 error = xfs_qm_init_quotainfo(mp); in xfs_qm_mount_quotas()
1411 ASSERT(mp->m_quotainfo == NULL); in xfs_qm_mount_quotas()
1412 mp->m_qflags = 0; in xfs_qm_mount_quotas()
1418 if (XFS_QM_NEED_QUOTACHECK(mp)) { in xfs_qm_mount_quotas()
1419 error = xfs_qm_quotacheck(mp); in xfs_qm_mount_quotas()
1430 if (!XFS_IS_UQUOTA_ON(mp)) in xfs_qm_mount_quotas()
1431 mp->m_qflags &= ~XFS_UQUOTA_CHKD; in xfs_qm_mount_quotas()
1432 if (!XFS_IS_GQUOTA_ON(mp)) in xfs_qm_mount_quotas()
1433 mp->m_qflags &= ~XFS_GQUOTA_CHKD; in xfs_qm_mount_quotas()
1434 if (!XFS_IS_PQUOTA_ON(mp)) in xfs_qm_mount_quotas()
1435 mp->m_qflags &= ~XFS_PQUOTA_CHKD; in xfs_qm_mount_quotas()
1442 spin_lock(&mp->m_sb_lock); in xfs_qm_mount_quotas()
1443 sbf = mp->m_sb.sb_qflags; in xfs_qm_mount_quotas()
1444 mp->m_sb.sb_qflags = mp->m_qflags & XFS_MOUNT_QUOTA_ALL; in xfs_qm_mount_quotas()
1445 spin_unlock(&mp->m_sb_lock); in xfs_qm_mount_quotas()
1447 if (sbf != (mp->m_qflags & XFS_MOUNT_QUOTA_ALL)) { in xfs_qm_mount_quotas()
1448 if (xfs_sync_sb(mp, false)) { in xfs_qm_mount_quotas()
1455 ASSERT(!(XFS_IS_QUOTA_RUNNING(mp))); in xfs_qm_mount_quotas()
1456 xfs_alert(mp, "%s: Superblock update failed!", in xfs_qm_mount_quotas()
1462 xfs_warn(mp, "Failed to initialize disk quotas."); in xfs_qm_mount_quotas()
1473 xfs_mount_t *mp) in xfs_qm_init_quotainos() argument
1481 ASSERT(mp->m_quotainfo); in xfs_qm_init_quotainos()
1486 if (xfs_sb_version_hasquota(&mp->m_sb)) { in xfs_qm_init_quotainos()
1487 if (XFS_IS_UQUOTA_ON(mp) && in xfs_qm_init_quotainos()
1488 mp->m_sb.sb_uquotino != NULLFSINO) { in xfs_qm_init_quotainos()
1489 ASSERT(mp->m_sb.sb_uquotino > 0); in xfs_qm_init_quotainos()
1490 error = xfs_iget(mp, NULL, mp->m_sb.sb_uquotino, in xfs_qm_init_quotainos()
1495 if (XFS_IS_GQUOTA_ON(mp) && in xfs_qm_init_quotainos()
1496 mp->m_sb.sb_gquotino != NULLFSINO) { in xfs_qm_init_quotainos()
1497 ASSERT(mp->m_sb.sb_gquotino > 0); in xfs_qm_init_quotainos()
1498 error = xfs_iget(mp, NULL, mp->m_sb.sb_gquotino, in xfs_qm_init_quotainos()
1503 if (XFS_IS_PQUOTA_ON(mp) && in xfs_qm_init_quotainos()
1504 mp->m_sb.sb_pquotino != NULLFSINO) { in xfs_qm_init_quotainos()
1505 ASSERT(mp->m_sb.sb_pquotino > 0); in xfs_qm_init_quotainos()
1506 error = xfs_iget(mp, NULL, mp->m_sb.sb_pquotino, in xfs_qm_init_quotainos()
1521 if (XFS_IS_UQUOTA_ON(mp) && uip == NULL) { in xfs_qm_init_quotainos()
1522 error = xfs_qm_qino_alloc(mp, &uip, in xfs_qm_init_quotainos()
1529 if (XFS_IS_GQUOTA_ON(mp) && gip == NULL) { in xfs_qm_init_quotainos()
1530 error = xfs_qm_qino_alloc(mp, &gip, in xfs_qm_init_quotainos()
1537 if (XFS_IS_PQUOTA_ON(mp) && pip == NULL) { in xfs_qm_init_quotainos()
1538 error = xfs_qm_qino_alloc(mp, &pip, in xfs_qm_init_quotainos()
1544 mp->m_quotainfo->qi_uquotaip = uip; in xfs_qm_init_quotainos()
1545 mp->m_quotainfo->qi_gquotaip = gip; in xfs_qm_init_quotainos()
1546 mp->m_quotainfo->qi_pquotaip = pip; in xfs_qm_init_quotainos()
1582 struct xfs_mount *mp = dqp->q_mount; in xfs_qm_dqfree_one() local
1583 struct xfs_quotainfo *qi = mp->m_quotainfo; in xfs_qm_dqfree_one()
1619 struct xfs_mount *mp = ip->i_mount; in xfs_qm_vop_dqalloc() local
1626 if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp)) in xfs_qm_vop_dqalloc()
1639 if (XFS_NOT_DQATTACHED(mp, ip)) { in xfs_qm_vop_dqalloc()
1647 if ((flags & XFS_QMOPT_UQUOTA) && XFS_IS_UQUOTA_ON(mp)) { in xfs_qm_vop_dqalloc()
1659 error = xfs_qm_dqget(mp, uid, XFS_DQ_USER, true, &uq); in xfs_qm_vop_dqalloc()
1679 if ((flags & XFS_QMOPT_GQUOTA) && XFS_IS_GQUOTA_ON(mp)) { in xfs_qm_vop_dqalloc()
1682 error = xfs_qm_dqget(mp, gid, XFS_DQ_GROUP, true, &gq); in xfs_qm_vop_dqalloc()
1695 if ((flags & XFS_QMOPT_PQUOTA) && XFS_IS_PQUOTA_ON(mp)) { in xfs_qm_vop_dqalloc()
1698 error = xfs_qm_dqget(mp, (xfs_dqid_t)prid, XFS_DQ_PROJ, in xfs_qm_vop_dqalloc()
1788 struct xfs_mount *mp = ip->i_mount; in xfs_qm_vop_chown_reserve() local
1801 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_vop_chown_reserve()
1807 if (XFS_IS_UQUOTA_ON(mp) && udqp && in xfs_qm_vop_chown_reserve()
1876 struct xfs_mount *mp = i_tab[0]->i_mount; in xfs_qm_vop_rename_dqattach() local
1879 if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp)) in xfs_qm_vop_rename_dqattach()
1890 if (XFS_NOT_DQATTACHED(mp, ip)) { in xfs_qm_vop_rename_dqattach()
1908 struct xfs_mount *mp = tp->t_mountp; in xfs_qm_vop_create_dqattach() local
1910 if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp)) in xfs_qm_vop_create_dqattach()
1914 ASSERT(XFS_IS_QUOTA_RUNNING(mp)); in xfs_qm_vop_create_dqattach()
1916 if (udqp && XFS_IS_UQUOTA_ON(mp)) { in xfs_qm_vop_create_dqattach()
1923 if (gdqp && XFS_IS_GQUOTA_ON(mp)) { in xfs_qm_vop_create_dqattach()
1929 if (pdqp && XFS_IS_PQUOTA_ON(mp)) { in xfs_qm_vop_create_dqattach()