Lines Matching refs:root

72 	struct quota_root root;
91 struct fs_quota_root *root;
93 root = i_new(struct fs_quota_root, 1);
94 root->uid = geteuid();
95 root->gid = getegid();
97 return &root->root;
117 struct fs_quota_root *root = (struct fs_quota_root *)_root;
118 i_free(root->storage_mount_path);
119 root->storage_mount_path = i_strdup(param_value);
158 struct fs_quota_root *root = (struct fs_quota_root *)_root;
160 if (root->mount != NULL)
161 fs_quota_mountpoint_free(root->mount);
162 i_free(root->storage_mount_path);
163 i_free(root);
197 #define QUOTA_ROOT_MATCH(root, mount) \
198 ((root)->root.backend.name == quota_backend_fs.name && \
199 ((root)->storage_mount_path == NULL || \
200 strcmp((root)->storage_mount_path, (mount)->mount_path) == 0))
212 struct fs_quota_root *root = (struct fs_quota_root *)roots[i];
213 if (QUOTA_ROOT_MATCH(root, mount)) {
214 if (root->mount == NULL)
215 empty = root;
216 else if (strcmp(root->mount->mount_path,
218 return root;
225 fs_quota_mount_init(struct fs_quota_root *root,
244 root->mount = mount;
246 if (root->root.quota->set->debug) {
254 roots = array_get(&root->root.quota->roots, &count);
256 root = (struct fs_quota_root *)roots[i];
257 if (QUOTA_ROOT_MATCH(root, mount) && root->mount == NULL) {
259 root->mount = mount;
272 struct fs_quota_root *root = (struct fs_quota_root *)roots[i];
274 if (root->root.backend.name != quota_backend_fs.name ||
275 root->storage_mount_path == NULL || root->mount != NULL)
278 mount = fs_quota_mountpoint_get(root->storage_mount_path);
280 fs_quota_mount_init(root, mount,
281 root->storage_mount_path);
290 struct fs_quota_root *root;
299 root = fs_quota_root_find_mountpoint(quota, mount);
300 if (root != NULL && root->mount == NULL)
301 fs_quota_mount_init(root, mount, dir);
314 struct fs_quota_root *root = (struct fs_quota_root *)_root;
325 return root->inode_per_mail ? resources_kb_messages : resources_kb;
330 static void fs_quota_root_disable(struct fs_quota_root *root, bool group)
333 root->group_disabled = TRUE;
335 root->user_disabled = TRUE;
366 do_rquota_user(struct fs_quota_root *root,
376 struct fs_quota_mountpoint *mount = root->mount;
389 if (strcmp(root->mount->type, "nfs4") == 0) {
394 if (root->root.quota->set->debug) {
396 host, path, dec2str(root->uid));
413 args.gqa_uid = root->uid;
440 if (root->root.quota->set->debug) {
443 dec2str(root->uid),
450 if (root->root.quota->set->debug) {
452 dec2str(root->uid));
454 fs_quota_root_disable(root, FALSE);
468 do_rquota_group(struct fs_quota_root *root ATTR_UNUSED,
481 struct fs_quota_mountpoint *mount = root->mount;
491 if (root->root.quota->set->debug) {
493 host, path, dec2str(root->gid));
510 args.gqa_id = root->gid;
537 if (root->root.quota->set->debug) {
540 dec2str(root->gid),
547 if (root->root.quota->set->debug) {
549 dec2str(root->gid));
551 fs_quota_root_disable(root, TRUE);
571 fs_quota_get_linux(struct fs_quota_root *root, bool group,
580 id = group ? root->gid : root->uid;
583 if (strcmp(root->mount->type, "xfs") == 0) {
587 root->mount->device_path,
590 fs_quota_root_disable(root, group);
595 errno, root->mount->device_path);
615 root->mount->device_path,
618 fs_quota_root_disable(root, group);
623 root->mount->device_path);
657 fs_quota_get_bsdaix(struct fs_quota_root *root, bool group,
666 id = group ? root->gid : root->uid;
668 if (quotactl(root->mount->mount_path, QCMD(Q_GETQUOTA, type),
671 fs_quota_root_disable(root, group);
676 root->mount->mount_path);
695 fs_quota_get_netbsd(struct fs_quota_root *root, bool group,
705 if ((qh = quota_open(root->mount->mount_path)) == NULL) {
707 root->mount->mount_path);
708 fs_quota_root_disable(root, group);
713 qk.qk_id = group ? root->gid : root->uid;
720 fs_quota_root_disable(root, group);
725 root->mount->mount_path);
745 fs_quota_get_hpux(struct fs_quota_root *root,
752 if (quotactl(Q_GETQUOTA, root->mount->device_path,
753 root->uid, &dqblk) < 0) {
755 root->user_disabled = TRUE;
760 root->mount->device_path);
765 root->mount->block_size;
767 root->mount->block_size;
770 root->mount->block_size;
783 fs_quota_get_solaris(struct fs_quota_root *root,
791 if (root->mount->fd == -1)
795 ctl.uid = root->uid;
797 if (ioctl(root->mount->fd, Q_QUOTACTL, &ctl) < 0) {
800 root->mount->path);
818 fs_quota_get_resources(struct fs_quota_root *root, bool group,
824 if (root->group_disabled)
827 if (root->user_disabled)
831 return fs_quota_get_linux(root, group, bytes_value_r, bytes_limit_r,
834 return fs_quota_get_netbsd(root, group, bytes_value_r, bytes_limit_r,
837 return fs_quota_get_bsdaix(root, group, bytes_value_r, bytes_limit_r,
845 return fs_quota_get_hpux(root, bytes_value_r, bytes_limit_r,
848 return fs_quota_get_solaris(root, bytes_value_r, bytes_limit_r,
856 struct fs_quota_root *root = (struct fs_quota_root *)_root;
861 if (root->storage_mount_path == NULL)
872 if (stat(root->storage_mount_path, &rst) < 0) {
875 root->storage_mount_path);
882 root->storage_mount_path, match ? "yes" : "no");
891 struct fs_quota_root *root = (struct fs_quota_root *)_root;
898 if (root->mount == NULL) {
899 if (root->storage_mount_path != NULL)
902 root->storage_mount_path);
914 if (mount_type_is_nfs(root->mount)) {
915 ret = root->user_disabled ? 0 :
916 do_rquota_user(root, &bytes_value, &bytes_limit,
918 if (ret == 0 && !root->group_disabled)
919 ret = do_rquota_group(root, &bytes_value,
925 ret = fs_quota_get_resources(root, FALSE, &bytes_value,
930 ret = fs_quota_get_resources(root, TRUE, &bytes_value,
958 fs_quota_update(struct quota_root *root ATTR_UNUSED,