}
/* account the bus against the user */
- ret = __kdbus_domain_user_account(domain, uid, &b->user);
+ ret = kdbus_domain_get_user_unlocked(domain, uid, &b->user);
if (ret < 0)
goto exit_unref_user_unlock;
if (ep->user)
conn->user = kdbus_domain_user_ref(ep->user);
else {
- ret = kdbus_domain_user_account(ep->bus->domain,
- current_fsuid(),
- &conn->user);
+ ret = kdbus_domain_get_user(ep->bus->domain,
+ current_fsuid(),
+ &conn->user);
if (ret < 0)
goto exit_free_meta;
}
}
/**
- * __kdbus_domain_user_account() - account a kdbus_domain_user object
- * into the specified domain
+ * kdbus_domain_get_user_unlocked() - get a kdbus_domain_user object
* @domain: The domain of the user
* @uid: The uid of the user; INVALID_UID for an
* anonymous user like a custom endpoint
* return it in the @user argument. Otherwise allocate a new one,
* link it into the domain and return it.
*/
-int __kdbus_domain_user_account(struct kdbus_domain *domain,
- kuid_t uid,
- struct kdbus_domain_user **user)
+int kdbus_domain_get_user_unlocked(struct kdbus_domain *domain,
+ kuid_t uid,
+ struct kdbus_domain_user **user)
{
int ret;
struct kdbus_domain_user *tmp_user;
}
/**
- * kdbus_domain_user_account() - account a kdbus_domain_user object
- * into the specified domain
+ * kdbus_domain_get_user() - get a kdbus_domain_user object
* @domain: The domain of the user
* @uid: The uid of the user; INVALID_UID for an
* anonymous user like a custom endpoint
* domain user will be stored.
*
* Return: 0 on success, negative errno on failure.
- *
- * On success: if there is a uid matching, then use the already
- * accounted kdbus_domain_user, increment its reference counter and
- * return it in the 'user' argument. Otherwise, allocate a new one,
- * link it into the domain, then return it.
- *
- * On failure: the 'user' argument is not updated.
- *
- * This function will first check if the domain was not disconnected.
*/
-int kdbus_domain_user_account(struct kdbus_domain *domain,
- kuid_t uid,
- struct kdbus_domain_user **user)
+int kdbus_domain_get_user(struct kdbus_domain *domain,
+ kuid_t uid,
+ struct kdbus_domain_user **user)
{
int ret = -ESHUTDOWN;
mutex_lock(&domain->lock);
-
if (!domain->disconnected)
- ret = __kdbus_domain_user_account(domain, uid, user);
-
+ ret = kdbus_domain_get_user_unlocked(domain, uid, user);
mutex_unlock(&domain->lock);
return ret;
int kdbus_domain_make_user(struct kdbus_cmd_make *cmd, char **name);
struct kdbus_domain *kdbus_domain_find_by_major(unsigned int major);
-int __kdbus_domain_user_account(struct kdbus_domain *domain,
- kuid_t uid,
- struct kdbus_domain_user **user);
+int kdbus_domain_get_user_unlocked(struct kdbus_domain *domain,
+ kuid_t uid,
+ struct kdbus_domain_user **user);
-int kdbus_domain_user_account(struct kdbus_domain *domain,
- kuid_t uid,
- struct kdbus_domain_user **user);
+int kdbus_domain_get_user(struct kdbus_domain *domain,
+ kuid_t uid,
+ struct kdbus_domain_user **user);
struct kdbus_domain_user *kdbus_domain_user_ref(struct kdbus_domain_user *u);
struct kdbus_domain_user *kdbus_domain_user_unref(struct kdbus_domain_user *u);
* endpoint users do not share the budget with the ordinary
* users created for a UID.
*/
- ret = kdbus_domain_user_account(handle->ep->bus->domain,
- INVALID_UID, &ep->user);
+ ret = kdbus_domain_get_user(handle->ep->bus->domain,
+ INVALID_UID, &ep->user);
if (ret < 0) {
kdbus_ep_unref(ep);
break;
}
static const struct kdbus_policy_db_entry *
-__kdbus_policy_lookup(struct kdbus_policy_db *db,
+kdbus_policy_lookup(struct kdbus_policy_db *db,
const char *name, u32 hash,
bool wildcard)
{
return 0;
mutex_lock(&db->entries_lock);
- e = __kdbus_policy_lookup(db, name, kdbus_str_hash(name), true);
+ e = kdbus_policy_lookup(db, name, kdbus_str_hash(name), true);
ret = kdbus_policy_check_access(e, conn->cred, KDBUS_POLICY_OWN);
mutex_unlock(&db->entries_lock);
mutex_lock(&conn_dst->lock);
list_for_each_entry(name_entry, &conn_dst->names_list, conn_entry) {
u32 hash = kdbus_str_hash(name_entry->name);
- e = __kdbus_policy_lookup(db, name_entry->name, hash, true);
+ e = kdbus_policy_lookup(db, name_entry->name, hash, true);
if (kdbus_policy_check_access(e, current_cred(),
KDBUS_POLICY_TALK) == 0) {
ret = 0;
{
const struct kdbus_policy_db_entry *e;
- e = __kdbus_policy_lookup(db, name, kdbus_str_hash(name), true);
+ e = kdbus_policy_lookup(db, name, kdbus_str_hash(name), true);
return kdbus_policy_check_access(e, current_cred(), KDBUS_POLICY_SEE);
}
int ret = 0;
u32 hash = kdbus_str_hash(e->name);
- if (__kdbus_policy_lookup(db, e->name, hash, false))
+ if (kdbus_policy_lookup(db, e->name, hash, false))
ret = -EEXIST;
else
hash_add(db->entries_hash, &e->hentry, hash);
/*
* normally having flags == 0 is valid, but just keep
- * HELLO flags of __kdbus_hello(), don't check them.
+ * HELLO flags of kdbus_hello(), don't check them.
*/
item->type = KDBUS_ITEM_ATTACH_FLAGS;
item->size = KDBUS_ITEM_HEADER_SIZE + sizeof(uint64_t);