libglnx porting: Use of GSDirFdIterator
This one was pretty simple. One of the uses in `repo.c` was just a leftover variable. Closes: #341 Approved by: jlebon
This commit is contained in:
parent
0134c62157
commit
4819b44189
|
|
@ -1173,43 +1173,31 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean ret = FALSE;
|
gboolean ret = FALSE;
|
||||||
gs_dirfd_iterator_cleanup GSDirFdIterator dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_init_at (self->commit_stagedir_fd, ".", FALSE, &dfd_iter, error))
|
if (!glnx_dirfd_iterator_init_at (self->commit_stagedir_fd, ".", FALSE, &dfd_iter, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* Iterate over the outer checksum dir */
|
/* Iterate over the outer checksum dir */
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
struct dirent *dent;
|
struct dirent *dent;
|
||||||
gs_dirfd_iterator_cleanup GSDirFdIterator child_dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) child_dfd_iter = { 0, };
|
||||||
struct stat stbuf;
|
|
||||||
int res;
|
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_next_dent (&dfd_iter, &dent, cancellable, error))
|
if (!glnx_dirfd_iterator_next_dent_ensure_dtype (&dfd_iter, &dent, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (dent == NULL)
|
if (dent == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
do
|
if (dent->d_type != DT_DIR)
|
||||||
res = fstatat (dfd_iter.fd, dent->d_name, &stbuf, AT_SYMLINK_NOFOLLOW);
|
|
||||||
while (G_UNLIKELY (res == -1 && errno == EINTR));
|
|
||||||
if (res == -1)
|
|
||||||
{
|
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!S_ISDIR (stbuf.st_mode))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* All object directories only have two character entries */
|
/* All object directories only have two character entries */
|
||||||
if (strlen (dent->d_name) != 2)
|
if (strlen (dent->d_name) != 2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_init_at (dfd_iter.fd, dent->d_name, FALSE,
|
if (!glnx_dirfd_iterator_init_at (dfd_iter.fd, dent->d_name, FALSE,
|
||||||
&child_dfd_iter, error))
|
&child_dfd_iter, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* Iterate over inner checksum dir */
|
/* Iterate over inner checksum dir */
|
||||||
|
|
@ -1218,9 +1206,8 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
struct dirent *child_dent;
|
struct dirent *child_dent;
|
||||||
char loose_objpath[_OSTREE_LOOSE_PATH_MAX];
|
char loose_objpath[_OSTREE_LOOSE_PATH_MAX];
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_next_dent (&child_dfd_iter, &child_dent, cancellable, error))
|
if (!glnx_dirfd_iterator_next_dent (&child_dfd_iter, &child_dent, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (child_dent == NULL)
|
if (child_dent == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -2412,7 +2399,7 @@ write_directory_to_mtree_internal (OstreeRepo *self,
|
||||||
GError **error);
|
GError **error);
|
||||||
static gboolean
|
static gboolean
|
||||||
write_dfd_iter_to_mtree_internal (OstreeRepo *self,
|
write_dfd_iter_to_mtree_internal (OstreeRepo *self,
|
||||||
GSDirFdIterator *src_dfd_iter,
|
GLnxDirFdIterator *src_dfd_iter,
|
||||||
OstreeMutableTree *mtree,
|
OstreeMutableTree *mtree,
|
||||||
OstreeRepoCommitModifier *modifier,
|
OstreeRepoCommitModifier *modifier,
|
||||||
GPtrArray *path,
|
GPtrArray *path,
|
||||||
|
|
@ -2423,7 +2410,7 @@ static gboolean
|
||||||
write_directory_content_to_mtree_internal (OstreeRepo *self,
|
write_directory_content_to_mtree_internal (OstreeRepo *self,
|
||||||
OstreeRepoFile *repo_dir,
|
OstreeRepoFile *repo_dir,
|
||||||
GFileEnumerator *dir_enum,
|
GFileEnumerator *dir_enum,
|
||||||
GSDirFdIterator *dfd_iter,
|
GLnxDirFdIterator *dfd_iter,
|
||||||
GFileInfo *child_info,
|
GFileInfo *child_info,
|
||||||
OstreeMutableTree *mtree,
|
OstreeMutableTree *mtree,
|
||||||
OstreeRepoCommitModifier *modifier,
|
OstreeRepoCommitModifier *modifier,
|
||||||
|
|
@ -2488,9 +2475,9 @@ write_directory_content_to_mtree_internal (OstreeRepo *self,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gs_dirfd_iterator_cleanup GSDirFdIterator child_dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) child_dfd_iter = { 0, };
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_init_at (dfd_iter->fd, name, FALSE, &child_dfd_iter, error))
|
if (!glnx_dirfd_iterator_init_at (dfd_iter->fd, name, FALSE, &child_dfd_iter, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!write_dfd_iter_to_mtree_internal (self, &child_dfd_iter, child_mtree,
|
if (!write_dfd_iter_to_mtree_internal (self, &child_dfd_iter, child_mtree,
|
||||||
|
|
@ -2693,7 +2680,7 @@ write_directory_to_mtree_internal (OstreeRepo *self,
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
write_dfd_iter_to_mtree_internal (OstreeRepo *self,
|
write_dfd_iter_to_mtree_internal (OstreeRepo *self,
|
||||||
GSDirFdIterator *src_dfd_iter,
|
GLnxDirFdIterator *src_dfd_iter,
|
||||||
OstreeMutableTree *mtree,
|
OstreeMutableTree *mtree,
|
||||||
OstreeRepoCommitModifier *modifier,
|
OstreeRepoCommitModifier *modifier,
|
||||||
GPtrArray *path,
|
GPtrArray *path,
|
||||||
|
|
@ -2760,9 +2747,8 @@ write_dfd_iter_to_mtree_internal (OstreeRepo *self,
|
||||||
g_autoptr(GFileInfo) child_info = NULL;
|
g_autoptr(GFileInfo) child_info = NULL;
|
||||||
const char *loose_checksum;
|
const char *loose_checksum;
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_next_dent (src_dfd_iter, &dent, cancellable, error))
|
if (!glnx_dirfd_iterator_next_dent (src_dfd_iter, &dent, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (dent == NULL)
|
if (dent == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -2888,15 +2874,14 @@ ostree_repo_write_dfd_to_mtree (OstreeRepo *self,
|
||||||
{
|
{
|
||||||
gboolean ret = FALSE;
|
gboolean ret = FALSE;
|
||||||
g_autoptr(GPtrArray) pathbuilder = NULL;
|
g_autoptr(GPtrArray) pathbuilder = NULL;
|
||||||
gs_dirfd_iterator_cleanup GSDirFdIterator dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
||||||
|
|
||||||
if (modifier && modifier->flags & OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES)
|
if (modifier && modifier->flags & OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES)
|
||||||
self->generate_sizes = TRUE;
|
self->generate_sizes = TRUE;
|
||||||
|
|
||||||
pathbuilder = g_ptr_array_new ();
|
pathbuilder = g_ptr_array_new ();
|
||||||
|
|
||||||
if (!gs_dirfd_iterator_init_at (dfd, path, FALSE,
|
if (!glnx_dirfd_iterator_init_at (dfd, path, FALSE, &dfd_iter, error))
|
||||||
&dfd_iter, error))
|
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!write_dfd_iter_to_mtree_internal (self, &dfd_iter, mtree, modifier, pathbuilder,
|
if (!write_dfd_iter_to_mtree_internal (self, &dfd_iter, mtree, modifier, pathbuilder,
|
||||||
|
|
|
||||||
|
|
@ -4825,7 +4825,6 @@ _ostree_repo_allocate_tmpdir (int tmpdir_dfd,
|
||||||
|
|
||||||
while (tmpdir_name == NULL)
|
while (tmpdir_name == NULL)
|
||||||
{
|
{
|
||||||
gs_dirfd_iterator_cleanup GSDirFdIterator child_dfd_iter = { 0, };
|
|
||||||
struct dirent *dent;
|
struct dirent *dent;
|
||||||
glnx_fd_close int existing_tmpdir_fd = -1;
|
glnx_fd_close int existing_tmpdir_fd = -1;
|
||||||
g_autoptr(GError) local_error = NULL;
|
g_autoptr(GError) local_error = NULL;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue