directory-handle: print `errno` reason on `unlinkat()` error
[lttng-tools.git] / src / common / compat / directory-handle.c
index f0139be29bced2a8f566d64dc0b77b49c93a3cca..aea4be5fe27ffc54e3c9c873fa36209317cb2ba9 100644 (file)
@@ -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
@@ -591,7 +598,7 @@ LTTNG_HIDDEN
 bool lttng_directory_handle_equals(const struct lttng_directory_handle *lhs,
                const struct lttng_directory_handle *rhs)
 {
-       return strcmp(lhs->path, rhs->path) == 0;
+       return strcmp(lhs->base_path, rhs->base_path) == 0;
 }
 
 static
This page took 0.023613 seconds and 4 git commands to generate.