- g_file_set_attributes_async (file, info, G_FILE_QUERY_INFO_NONE,
- G_PRIORITY_DEFAULT, NULL,
- chown_user_dir_cb, NULL);
-
- g_object_unref (owner->manager);
- g_free (owner);
-}
-
-void
-shared_data_manager_ensure_user_dir (SharedDataManager *manager, const gchar *user)
-{
- struct passwd *entry = getpwnam (user);
- if (!entry)
- return;
-
- struct OwnerInfo *owner = g_malloc (sizeof (struct OwnerInfo));
- owner->manager = g_object_ref (manager);
- owner->uid = entry->pw_uid;
-
- gchar *path = g_build_filename (USERS_DIR, user, NULL);
- GFile *file = g_file_new_for_path (path);
- g_free (path);
-
- g_file_make_directory_async (file, G_PRIORITY_DEFAULT, NULL,
- make_user_dir_cb, owner);
+ if (!g_file_set_attributes_from_info (file, info, G_FILE_QUERY_INFO_NONE,
+ NULL, &error))
+ {
+ g_warning ("Could not chown user data directory %s: %s",
+ path, error->message);
+ g_error_free (error);
+ g_object_unref (info);
+ g_object_unref (file);
+ g_free (path);
+ return FALSE;
+ }