core: Use linkat() for hardlink checkouts too

Clean up how we deal with the uncompressed object cache; we now use
openat()/linkat() and such just like we do for the main objects/.

Use linkat() between the objects and the destination, if possible.

https://bugzilla.gnome.org/show_bug.cgi?id=707733
This commit is contained in:
Colin Walters committed 2013-09-08 14:40:09 -04:00
1 parent db148cc9ba
commit 9846fb27fd
6 files changed
+227 -162

No files matched your search

+6 -3
View File
@@ -36,6 +36,7 @@ struct OstreeRepo {
GFile *objects_dir;
int objects_dir_fd;
GFile *uncompressed_objects_dir;
int uncompressed_objects_dir_fd;
GFile *remote_cache_dir;
GFile *config_file;
@@ -60,9 +61,11 @@ struct OstreeRepo {
OstreeRepo *parent_repo;
};
GFile *
_ostree_repo_get_uncompressed_object_cache_path (OstreeRepo *self,
const char *checksum);
gboolean
_ostree_repo_ensure_loose_objdir_at (int dfd,
const char *loose_path,
GCancellable *cancellable,
GError **error);
GFile *
_ostree_repo_get_file_object_path (OstreeRepo *self,