int ret = 0;
*bytes_r = *count_r = 0;
+ if (root->recounting)
+ return 0;
+ root->recounting = TRUE;
namespaces = array_get(&root->quota->namespaces, &count);
for (i = 0; i < count; i++) {
if (ret < 0)
break;
}
+ root->recounting = FALSE;
return ret;
}
unsigned int no_enforcing:1;
/* If user has unlimited quota, disable quota tracking */
unsigned int disable_unlimited_tracking:1;
+ /* Set while quota is being recalculated to avoid recursion. */
+ unsigned int recounting:1;
};
struct quota_transaction_context {