Run clang-format on the whole tree
[lttng-tools.git] / src / common / fd-tracker / inode.cpp
index c00f9d81ff1686e8ec16b30cc32095a53884f12c..b21a82d8731e6d56c7015aba95a87102a45d0e42 100644 (file)
@@ -5,6 +5,8 @@
  *
  */
 
+#include "inode.hpp"
+
 #include <common/defaults.hpp>
 #include <common/error.hpp>
 #include <common/hashtable/utils.hpp>
 #include <common/optional.hpp>
 #include <common/string-utils/format.hpp>
 #include <common/utils.hpp>
-#include <inttypes.h>
+
 #include <lttng/constant.h>
+
+#include <inttypes.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
@@ -21,8 +25,6 @@
 #include <urcu/rculfhash.h>
 #include <urcu/ref.h>
 
-#include "inode.hpp"
-
 namespace {
 struct inode_id {
        dev_t device;
@@ -68,9 +70,9 @@ struct {
        bool initialized;
        unsigned long value;
 } seed = {
-               .lock = PTHREAD_MUTEX_INITIALIZER,
-               .initialized = false,
-               .value = 0,
+       .lock = PTHREAD_MUTEX_INITIALIZER,
+       .initialized = false,
+       .value = 0,
 };
 } /* namespace */
 
@@ -78,38 +80,34 @@ static unsigned long lttng_inode_id_hash(const struct inode_id *id)
 {
        uint64_t device = id->device, inode_no = id->inode;
 
-       return hash_key_u64(&device, seed.value) ^
-              hash_key_u64(&inode_no, seed.value);
+       return hash_key_u64(&device, seed.value) ^ hash_key_u64(&inode_no, seed.value);
 }
 
 static int lttng_inode_match(struct cds_lfht_node *node, const void *key)
 {
        const struct inode_id *id = (inode_id *) key;
-       const struct lttng_inode *inode = lttng::utils::container_of(
-                       node, &lttng_inode::registry_node);
+       const struct lttng_inode *inode =
+               lttng::utils::container_of(node, &lttng_inode::registry_node);
 
        return inode->id.device == id->device && inode->id.inode == id->inode;
 }
 
 static void lttng_inode_free(struct rcu_head *head)
 {
-       struct lttng_inode *inode =
-                       lttng::utils::container_of(head, &lttng_inode::rcu_head);
+       struct lttng_inode *inode = lttng::utils::container_of(head, &lttng_inode::rcu_head);
 
        free(inode);
 }
 
-static int lttng_unlinked_file_pool_add_inode(
-               struct lttng_unlinked_file_pool *pool,
-               struct lttng_inode *inode)
+static int lttng_unlinked_file_pool_add_inode(struct lttng_unlinked_file_pool *pool,
+                                             struct lttng_inode *inode)
 {
        int ret;
        const unsigned int unlinked_id = pool->next_id++;
        char *inode_unlinked_name;
        bool reference_acquired;
 
-       DBG("Adding inode of %s to unlinked file pool as id %u",
-                       inode->location.path, unlinked_id);
+       DBG("Adding inode of %s to unlinked file pool as id %u", inode->location.path, unlinked_id);
        ret = asprintf(&inode_unlinked_name, "%u", unlinked_id);
        if (ret < 0) {
                ERR("Failed to format unlinked inode name");
@@ -118,11 +116,9 @@ static int lttng_unlinked_file_pool_add_inode(
        }
 
        if (pool->file_count == 0) {
-               DBG("Creating unlinked files directory at %s",
-                               pool->unlink_directory_path);
+               DBG("Creating unlinked files directory at %s", pool->unlink_directory_path);
                LTTNG_ASSERT(!pool->unlink_directory_handle);
-               ret = utils_mkdir(pool->unlink_directory_path,
-                               S_IRWXU | S_IRWXG, -1, -1);
+               ret = utils_mkdir(pool->unlink_directory_path, S_IRWXU | S_IRWXG, -1, -1);
                if (ret) {
                        if (errno == EEXIST) {
                                /*
@@ -130,34 +126,34 @@ static int lttng_unlinked_file_pool_add_inode(
                                 * error.
                                 */
                                DBG("Unlinked file directory \"%s\" already exists",
-                                               pool->unlink_directory_path);
+                                   pool->unlink_directory_path);
                        } else {
                                PERROR("Failed to create unlinked files directory at %s",
-                                               pool->unlink_directory_path);
+                                      pool->unlink_directory_path);
                                goto end;
                        }
                }
-               pool->unlink_directory_handle = lttng_directory_handle_create(
-                               pool->unlink_directory_path);
+               pool->unlink_directory_handle =
+                       lttng_directory_handle_create(pool->unlink_directory_path);
                if (!pool->unlink_directory_handle) {
                        ERR("Failed to create directory handle to unlinked file pool at %s",
-                                       pool->unlink_directory_path);
+                           pool->unlink_directory_path);
                        ret = -1;
                        goto end;
                }
        }
 
        ret = lttng_directory_handle_rename(inode->location.directory_handle,
-                       inode->location.path, pool->unlink_directory_handle,
-                       inode_unlinked_name);
+                                           inode->location.path,
+                                           pool->unlink_directory_handle,
+                                           inode_unlinked_name);
        if (ret) {
                goto end;
        }
 
        lttng_directory_handle_put(inode->location.directory_handle);
        inode->location.directory_handle = NULL;
-       reference_acquired = lttng_directory_handle_get(
-                       pool->unlink_directory_handle);
+       reference_acquired = lttng_directory_handle_get(pool->unlink_directory_handle);
        LTTNG_ASSERT(reference_acquired);
        inode->location.directory_handle = pool->unlink_directory_handle;
 
@@ -171,20 +167,19 @@ end:
        return ret;
 }
 
-static int lttng_unlinked_file_pool_remove_inode(
-               struct lttng_unlinked_file_pool *pool,
-               struct lttng_inode *inode)
+static int lttng_unlinked_file_pool_remove_inode(struct lttng_unlinked_file_pool *pool,
+                                                struct lttng_inode *inode)
 {
        int ret;
 
        DBG("Removing inode with unlinked id %u from unlinked file pool",
-                       LTTNG_OPTIONAL_GET(inode->unlinked_id));
+           LTTNG_OPTIONAL_GET(inode->unlinked_id));
 
-       ret = lttng_directory_handle_unlink_file(
-                       inode->location.directory_handle, inode->location.path);
+       ret = lttng_directory_handle_unlink_file(inode->location.directory_handle,
+                                                inode->location.path);
        if (ret) {
                PERROR("Failed to unlink file %s from unlinked file directory",
-                               inode->location.path);
+                      inode->location.path);
                goto end;
        }
        free(inode->location.path);
@@ -201,7 +196,7 @@ static int lttng_unlinked_file_pool_remove_inode(
                         * error except through logging.
                         */
                        PERROR("Failed to remove unlinked files directory at %s",
-                                       pool->unlink_directory_path);
+                              pool->unlink_directory_path);
                }
                lttng_directory_handle_put(pool->unlink_directory_handle);
                pool->unlink_directory_handle = NULL;
@@ -225,16 +220,14 @@ static void lttng_inode_destroy(struct lttng_inode *inode)
 
                LTTNG_ASSERT(inode->location.directory_handle);
                LTTNG_ASSERT(inode->location.path);
-               DBG("Removing %s from unlinked file pool",
-                               inode->location.path);
+               DBG("Removing %s from unlinked file pool", inode->location.path);
                ret = lttng_unlinked_file_pool_remove_inode(inode->unlinked_file_pool, inode);
                if (ret) {
                        PERROR("Failed to unlink %s", inode->location.path);
                }
        }
 
-       lttng_directory_handle_put(
-                       inode->location.directory_handle);
+       lttng_directory_handle_put(inode->location.directory_handle);
        inode->location.directory_handle = NULL;
        free(inode->location.path);
        inode->location.path = NULL;
@@ -251,8 +244,7 @@ static void lttng_inode_get(struct lttng_inode *inode)
        urcu_ref_get(&inode->ref);
 }
 
-struct lttng_unlinked_file_pool *lttng_unlinked_file_pool_create(
-               const char *path)
+struct lttng_unlinked_file_pool *lttng_unlinked_file_pool_create(const char *path)
 {
        struct lttng_unlinked_file_pool *pool = zmalloc<lttng_unlinked_file_pool>();
 
@@ -262,7 +254,7 @@ struct lttng_unlinked_file_pool *lttng_unlinked_file_pool_create(
 
        if (!path || *path != '/') {
                ERR("Unlinked file pool must be created with an absolute path, path = \"%s\"",
-                               path ? path : "NULL");
+                   path ? path : "NULL");
                goto error;
        }
 
@@ -278,8 +270,7 @@ error:
        return NULL;
 }
 
-void lttng_unlinked_file_pool_destroy(
-               struct lttng_unlinked_file_pool *pool)
+void lttng_unlinked_file_pool_destroy(struct lttng_unlinked_file_pool *pool)
 {
        if (!pool) {
                return;
@@ -296,13 +287,11 @@ void lttng_inode_put(struct lttng_inode *inode)
        urcu_ref_put(&inode->ref, lttng_inode_release);
 }
 
-struct lttng_directory_handle *
-lttng_inode_get_location_directory_handle(
-               struct lttng_inode *inode)
+struct lttng_directory_handle *lttng_inode_get_location_directory_handle(struct lttng_inode *inode)
 {
        if (inode->location.directory_handle) {
-               const bool reference_acquired = lttng_directory_handle_get(
-                               inode->location.directory_handle);
+               const bool reference_acquired =
+                       lttng_directory_handle_get(inode->location.directory_handle);
 
                LTTNG_ASSERT(reference_acquired);
        }
@@ -310,8 +299,8 @@ lttng_inode_get_location_directory_handle(
 }
 
 void lttng_inode_borrow_location(struct lttng_inode *inode,
-               const struct lttng_directory_handle **out_directory_handle,
-               const char **out_path)
+                                const struct lttng_directory_handle **out_directory_handle,
+                                const char **out_path)
 {
        if (out_directory_handle) {
                *out_directory_handle = inode->location.directory_handle;
@@ -321,24 +310,23 @@ void lttng_inode_borrow_location(struct lttng_inode *inode,
        }
 }
 
-int lttng_inode_rename(
-               struct lttng_inode *inode,
-               struct lttng_directory_handle *old_directory_handle,
-               const char *old_path,
-               struct lttng_directory_handle *new_directory_handle,
-               const char *new_path,
-               bool overwrite)
+int lttng_inode_rename(struct lttng_inode *inode,
+                      struct lttng_directory_handle *old_directory_handle,
+                      const char *old_path,
+                      struct lttng_directory_handle *new_directory_handle,
+                      const char *new_path,
+                      bool overwrite)
 {
        int ret = 0;
        char *new_path_copy = strdup(new_path);
        bool reference_acquired;
 
        DBG("Performing rename of inode from %s to %s with %s directory handles",
-                       old_path, new_path,
-                       lttng_directory_handle_equals(old_directory_handle,
-                                       new_directory_handle) ?
-                                       "identical" :
-                                       "different");
+           old_path,
+           new_path,
+           lttng_directory_handle_equals(old_directory_handle, new_directory_handle) ?
+                   "identical" :
+                   "different");
 
        if (!new_path_copy) {
                ret = -ENOMEM;
@@ -347,7 +335,8 @@ int lttng_inode_rename(
 
        if (inode->unlink_pending) {
                WARN("An attempt to rename an unlinked file from %s to %s has been performed",
-                               old_path, new_path);
+                    old_path,
+                    new_path);
                ret = -ENOENT;
                goto end;
        }
@@ -356,11 +345,9 @@ int lttng_inode_rename(
                /* Verify that file doesn't exist. */
                struct stat statbuf;
 
-               ret = lttng_directory_handle_stat(
-                               new_directory_handle, new_path, &statbuf);
+               ret = lttng_directory_handle_stat(new_directory_handle, new_path, &statbuf);
                if (ret == 0) {
-                       ERR("Refusing to rename %s as the destination already exists",
-                                       old_path);
+                       ERR("Refusing to rename %s as the destination already exists", old_path);
                        ret = -EEXIST;
                        goto end;
                } else if (ret < 0 && errno != ENOENT) {
@@ -370,8 +357,8 @@ int lttng_inode_rename(
                }
        }
 
-       ret = lttng_directory_handle_rename(old_directory_handle, old_path,
-                       new_directory_handle, new_path);
+       ret = lttng_directory_handle_rename(
+               old_directory_handle, old_path, new_directory_handle, new_path);
        if (ret) {
                PERROR("Failed to rename file %s to %s", old_path, new_path);
                ret = -errno;
@@ -399,7 +386,7 @@ int lttng_inode_unlink(struct lttng_inode *inode)
 
        if (inode->unlink_pending) {
                WARN("An attempt to re-unlink %s has been performed, ignoring.",
-                               inode->location.path);
+                    inode->location.path);
                ret = -ENOENT;
                goto end;
        }
@@ -408,11 +395,10 @@ int lttng_inode_unlink(struct lttng_inode *inode)
         * Move to the temporary "deleted" directory until all
         * references are released.
         */
-       ret = lttng_unlinked_file_pool_add_inode(
-                       inode->unlinked_file_pool, inode);
+       ret = lttng_unlinked_file_pool_add_inode(inode->unlinked_file_pool, inode);
        if (ret) {
                PERROR("Failed to add inode \"%s\" to the unlinked file pool",
-                               inode->location.path);
+                      inode->location.path);
                goto end;
        }
        inode->unlink_pending = true;
@@ -421,10 +407,10 @@ end:
 }
 
 static struct lttng_inode *lttng_inode_create(const struct inode_id *id,
-               struct cds_lfht *ht,
-               struct lttng_unlinked_file_pool *unlinked_file_pool,
-               struct lttng_directory_handle *directory_handle,
-               const char *path)
+                                             struct cds_lfht *ht,
+                                             struct lttng_unlinked_file_pool *unlinked_file_pool,
+                                             struct lttng_directory_handle *directory_handle,
+                                             const char *path)
 {
        struct lttng_inode *inode = NULL;
        char *path_copy;
@@ -472,8 +458,8 @@ struct lttng_inode_registry *lttng_inode_registry_create(void)
        }
        pthread_mutex_unlock(&seed.lock);
 
-       registry->inodes = cds_lfht_new(DEFAULT_HT_SIZE, 1, 0,
-                       CDS_LFHT_AUTO_RESIZE | CDS_LFHT_ACCOUNTING, NULL);
+       registry->inodes = cds_lfht_new(
+               DEFAULT_HT_SIZE, 1, 0, CDS_LFHT_AUTO_RESIZE | CDS_LFHT_ACCOUNTING, NULL);
        if (!registry->inodes) {
                goto error;
        }
@@ -484,8 +470,7 @@ error:
        return NULL;
 }
 
-void lttng_inode_registry_destroy(
-               struct lttng_inode_registry *registry)
+void lttng_inode_registry_destroy(struct lttng_inode_registry *registry)
 {
        if (!registry) {
                return;
@@ -498,12 +483,12 @@ void lttng_inode_registry_destroy(
        free(registry);
 }
 
-struct lttng_inode *lttng_inode_registry_get_inode(
-               struct lttng_inode_registry *registry,
-               struct lttng_directory_handle *handle,
-               const char *path,
-               int fd,
-               struct lttng_unlinked_file_pool *unlinked_file_pool)
+struct lttng_inode *
+lttng_inode_registry_get_inode(struct lttng_inode_registry *registry,
+                              struct lttng_directory_handle *handle,
+                              const char *path,
+                              int fd,
+                              struct lttng_unlinked_file_pool *unlinked_file_pool)
 {
        int ret;
        struct stat statbuf;
@@ -522,25 +507,24 @@ struct lttng_inode *lttng_inode_registry_get_inode(
        id.inode = statbuf.st_ino;
 
        rcu_read_lock();
-       cds_lfht_lookup(registry->inodes, lttng_inode_id_hash(&id),
-                       lttng_inode_match, &id, &iter);
+       cds_lfht_lookup(registry->inodes, lttng_inode_id_hash(&id), lttng_inode_match, &id, &iter);
        node = cds_lfht_iter_get_node(&iter);
        if (node) {
-               inode = lttng::utils::container_of(
-                               node, &lttng_inode::registry_node);
+               inode = lttng::utils::container_of(node, &lttng_inode::registry_node);
                lttng_inode_get(inode);
                goto end_unlock;
        }
 
-       inode = lttng_inode_create(&id, registry->inodes, unlinked_file_pool,
-                       handle, path);
+       inode = lttng_inode_create(&id, registry->inodes, unlinked_file_pool, handle, path);
        if (!inode) {
                goto end_unlock;
        }
 
        node = cds_lfht_add_unique(registry->inodes,
-                       lttng_inode_id_hash(&inode->id), lttng_inode_match,
-                       &inode->id, &inode->registry_node);
+                                  lttng_inode_id_hash(&inode->id),
+                                  lttng_inode_match,
+                                  &inode->id,
+                                  &inode->registry_node);
        LTTNG_ASSERT(node == &inode->registry_node);
 end_unlock:
        rcu_read_unlock();
This page took 0.030665 seconds and 4 git commands to generate.