X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fdirectory-handle.c;h=356376ac0ed00a516fe9cadee59ac6a68b6835c5;hp=9d2fed4637e453a67358049caaf6208505580c47;hb=4fb28dfc10106c4095ca3b1155d4da9a04467fd1;hpb=0b1b49f99868a18f549dda323e07d5072bc771b5 diff --git a/src/common/compat/directory-handle.c b/src/common/compat/directory-handle.c index 9d2fed463..356376ac0 100644 --- a/src/common/compat/directory-handle.c +++ b/src/common/compat/directory-handle.c @@ -78,7 +78,7 @@ void lttng_directory_handle_invalidate(struct lttng_directory_handle *handle); static void lttng_directory_handle_release(struct urcu_ref *ref); -#ifdef COMPAT_DIRFD +#ifdef HAVE_DIRFD /* * Special inode number reserved to represent the "current working directory". @@ -164,6 +164,8 @@ struct lttng_directory_handle *lttng_directory_handle_create_from_dirfd( if (ret) { PERROR("Failed to fstat directory file descriptor %i", dirfd); lttng_directory_handle_release(&handle->ref); + handle = NULL; + goto end; } } else { handle->directory_inode = RESERVED_AT_FDCWD_INO; @@ -353,7 +355,12 @@ static int lttng_directory_handle_rmdir( const struct lttng_directory_handle *handle, const char *name) { - return unlinkat(handle->dirfd, name, AT_REMOVEDIR); + int ret = unlinkat(handle->dirfd, name, AT_REMOVEDIR); + if (ret) { + PERROR("Failed to remove directory `%s`", name); + } + + return ret; } static @@ -371,7 +378,7 @@ int _run_as_rmdir_recursive( return run_as_rmdirat_recursive(handle->dirfd, name, uid, gid, flags); } -#else /* COMPAT_DIRFD */ +#else /* HAVE_DIRFD */ static int get_full_path(const struct lttng_directory_handle *handle, @@ -884,7 +891,7 @@ end: return ret; } -#endif /* COMPAT_DIRFD */ +#endif /* HAVE_DIRFD */ /* Common implementation. */