Revert "sessiond: trigger: run trigger actions through an action executor"
[lttng-tools.git] / src / common / fd-tracker / inode.h
CommitLineData
e0e72660 1/*
ab5be9fa 2 * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com>
e0e72660 3 *
ab5be9fa 4 * SPDX-License-Identifier: GPL-2.0-only
e0e72660 5 *
e0e72660
JG
6 */
7
8#ifndef FD_TRACKER_INODE_H
9#define FD_TRACKER_INODE_H
10
f7c3ffd7 11#include <common/compat/directory-handle.h>
e0e72660
JG
12#include <stdbool.h>
13
14struct lttng_inode;
15struct lttng_inode_registry;
f7c3ffd7 16struct lttng_unlinked_file_directory;
dd95933f 17struct lttng_directory_handle;
f7c3ffd7
JG
18
19/*
20 * The unlinked file pool is protected by the fd-tracker's lock.
21 *
22 * NOTE: the unlinked file pool can use a single file desriptor when unlinked
23 * files are present in the pool. This file descriptor is not accounted-for
24 * by the fd-tracker. Users of the fd-tracker should account for this extra
25 * file descriptor.
26 */
938bd422 27LTTNG_HIDDEN
f7c3ffd7
JG
28struct lttng_unlinked_file_pool *lttng_unlinked_file_pool_create(
29 const char *path);
30
938bd422 31LTTNG_HIDDEN
f7c3ffd7
JG
32void lttng_unlinked_file_pool_destroy(
33 struct lttng_unlinked_file_pool *pool);
e0e72660
JG
34
35/* The inode registry is protected by the fd-tracker's lock. */
938bd422 36LTTNG_HIDDEN
e0e72660
JG
37struct lttng_inode_registry *lttng_inode_registry_create(void);
38
938bd422 39LTTNG_HIDDEN
e0e72660 40struct lttng_inode *lttng_inode_registry_get_inode(
5c1f54d1 41 struct lttng_inode_registry *registry,
f7c3ffd7
JG
42 struct lttng_directory_handle *handle,
43 const char *path,
5c1f54d1 44 int fd,
f7c3ffd7 45 struct lttng_unlinked_file_pool *pool);
e0e72660 46
938bd422 47LTTNG_HIDDEN
e0e72660
JG
48void lttng_inode_registry_destroy(struct lttng_inode_registry *registry);
49
938bd422 50LTTNG_HIDDEN
dd95933f 51void lttng_inode_borrow_location(struct lttng_inode *inode,
f7c3ffd7
JG
52 const struct lttng_directory_handle **out_directory_handle,
53 const char **out_path);
54
dd95933f 55/* Returns a new reference to the inode's location directory handle. */
938bd422 56LTTNG_HIDDEN
dd95933f
JG
57struct lttng_directory_handle *lttng_inode_get_location_directory_handle(
58 struct lttng_inode *inode);
59
938bd422 60LTTNG_HIDDEN
5c1f54d1 61int lttng_inode_rename(struct lttng_inode *inode,
f7c3ffd7
JG
62 struct lttng_directory_handle *old_directory_handle,
63 const char *old_path,
64 struct lttng_directory_handle *new_directory_handle,
5c1f54d1 65 const char *new_path,
e0e72660 66 bool overwrite);
f7c3ffd7 67
938bd422 68LTTNG_HIDDEN
f7c3ffd7
JG
69int lttng_inode_unlink(struct lttng_inode *inode);
70
938bd422 71LTTNG_HIDDEN
e0e72660
JG
72void lttng_inode_put(struct lttng_inode *inode);
73
74#endif /* FD_TRACKER_INODE_H */
This page took 0.034378 seconds and 5 git commands to generate.