fd-tracker: restore suspended handles from their inode's path
[lttng-tools.git] / src / common / fd-tracker / fd-tracker.h
index b8082c9a7697f51eb9b2c7d30e3ef94610f6d450..2ed385a2a0e4fc329ef833ff5e75dd6e39b53ffe 100644 (file)
@@ -18,6 +18,7 @@
 #ifndef FD_TRACKER_H
 #define FD_TRACKER_H
 
+#include <common/compat/directory-handle.h>
 #include <stdint.h>
 #include <sys/types.h>
 
@@ -52,8 +53,13 @@ typedef int (*fd_close_cb)(void *, int *in_fds);
  * Set the maximal number of fds that the process should be allowed to open at
  * any given time. This function must be called before any other of this
  * interface.
+ *
+ * The unlinked_file_path is an absolute path (which does not need to exist)
+ * under which unlinked files will be stored for as long as a reference to them
+ * is held.
  */
-struct fd_tracker *fd_tracker_create(unsigned int capacity);
+struct fd_tracker *fd_tracker_create(const char *unlinked_file_path,
+               unsigned int capacity);
 
 /* Returns an error if file descriptors are leaked. */
 int fd_tracker_destroy(struct fd_tracker *tracker);
@@ -81,7 +87,10 @@ int fd_tracker_destroy(struct fd_tracker *tracker);
  * open.
  */
 struct fs_handle *fd_tracker_open_fs_handle(struct fd_tracker *tracker,
-               const char *path, int flags, mode_t *mode);
+               struct lttng_directory_handle *directory,
+               const char *path,
+               int flags,
+               mode_t *mode);
 
 /*
  * Open a tracked unsuspendable file descriptor.
@@ -106,8 +115,11 @@ struct fs_handle *fd_tracker_open_fs_handle(struct fd_tracker *tracker,
  *             accomodate the request for a new unsuspendable entry.
  */
 int fd_tracker_open_unsuspendable_fd(struct fd_tracker *tracker,
-               int *out_fds, const char **names, unsigned int fd_count,
-               fd_open_cb open, void *data);
+               int *out_fds,
+               const char **names,
+               unsigned int fd_count,
+               fd_open_cb open,
+               void *data);
 
 /*
  * Close a tracked unsuspendable file descriptor.
@@ -125,7 +137,9 @@ int fd_tracker_open_unsuspendable_fd(struct fd_tracker *tracker,
  * allows the user to know which file descriptors are no longer being tracked.
  */
 int fd_tracker_close_unsuspendable_fd(struct fd_tracker *tracker,
-               int *fds, unsigned int fd_count, fd_close_cb close,
+               int *fds,
+               unsigned int fd_count,
+               fd_close_cb close,
                void *data);
 
 /*
This page took 0.023335 seconds and 4 git commands to generate.