Cleanup: autoconf 'dirfd' detection
[lttng-tools.git] / src / common / compat / directory-handle.c
index 9d2fed4637e453a67358049caaf6208505580c47..356376ac0ed00a516fe9cadee59ac6a68b6835c5 100644 (file)
@@ -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. */
 
This page took 0.023444 seconds and 4 git commands to generate.