core: Use at-relative functions for checking out tree copies too

For the cases where we can't hardlink, use at-relative walking of the
path where possible.  We still don't have lsetxattrat, so we also need
to deal with pathnames, but that is now only for symlinks.

Again, the advantages of this are a lot less malloc() of pathnames in
ostree, and much less time spent traversing paths inside the kernel.

https://bugzilla.gnome.org/show_bug.cgi?id=707733
This commit is contained in:
Colin Walters committed 2013-09-08 14:42:50 -04:00
1 parent 0c2ea54e68
commit 33e589c018
4 files changed
+374 -390

No files matched your search

+6
View File
@@ -83,6 +83,12 @@ _ostree_set_xattrs_fd (int fd,
gboolean _ostree_set_xattrs (GFile *f, GVariant *xattrs,
GCancellable *cancellable, GError **error);
gboolean
_ostree_make_temporary_symlink_at (int tmp_dirfd,
const char *target,
char **out_name,
GCancellable *cancellable,
GError **error);
/* XX + / + checksum-2 + . + extension, but let's just use 256 for a
* bit of overkill.