X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-statedump-impl.c;h=846706e33a691d4af483a220411d701969013054;hb=2dc781e02eb156a76554ada092a181ab2916db57;hp=f9917bb226441b04cd0f33e221d1fb1819654536;hpb=fef7fe6ab7d3a9bb2e218fd41277b43dbb3de01a;p=lttng-modules.git diff --git a/src/lttng-statedump-impl.c b/src/lttng-statedump-impl.c index f9917bb2..846706e3 100644 --- a/src/lttng-statedump-impl.c +++ b/src/lttng-statedump-impl.c @@ -94,7 +94,7 @@ LTTNG_DEFINE_TRACE(lttng_statedump_process_pid_ns, struct pid_namespace *pid_ns), TP_ARGS(session, p, pid_ns)); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0)) LTTNG_DEFINE_TRACE(lttng_statedump_process_cgroup_ns, TP_PROTO(struct lttng_session *session, struct task_struct *p, @@ -195,7 +195,7 @@ enum lttng_process_status { }; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) #define LTTNG_PART_STRUCT_TYPE struct block_device @@ -256,13 +256,17 @@ int lttng_enumerate_block_devices(struct lttng_session *session) struct device_type *ptr_disk_type; struct class_dev_iter iter; struct device *dev; + int ret = 0; ptr_block_class = wrapper_get_block_class(); - if (!ptr_block_class) - return -ENOSYS; + if (!ptr_block_class) { + ret = -ENOSYS; + goto end; + } ptr_disk_type = wrapper_get_disk_type(); if (!ptr_disk_type) { - return -ENOSYS; + ret = -ENOSYS; + goto end; } class_dev_iter_init(&iter, ptr_block_class, NULL, ptr_disk_type); while ((dev = class_dev_iter_next(&iter))) { @@ -278,22 +282,32 @@ int lttng_enumerate_block_devices(struct lttng_session *session) (disk->flags & GENHD_FL_SUPPRESS_PARTITION_INFO)) continue; - disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); - while ((part = disk_part_iter_next(&piter))) { + /* + * The original 'disk_part_iter_init' returns void, but our + * wrapper can fail to lookup the original symbol. + */ + if (wrapper_disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0) < 0) { + ret = -ENOSYS; + goto iter_exit; + } + + while ((part = wrapper_disk_part_iter_next(&piter))) { char name_buf[BDEVNAME_SIZE]; if (lttng_get_part_name(disk, part, name_buf) == -ENOSYS) { - disk_part_iter_exit(&piter); - class_dev_iter_exit(&iter); - return -ENOSYS; + wrapper_disk_part_iter_exit(&piter); + ret = -ENOSYS; + goto iter_exit; } trace_lttng_statedump_block_device(session, lttng_get_part_devt(part), name_buf); } - disk_part_iter_exit(&piter); + wrapper_disk_part_iter_exit(&piter); } +iter_exit: class_dev_iter_exit(&iter); - return 0; +end: + return ret; } #ifdef CONFIG_INET @@ -552,7 +566,7 @@ void lttng_statedump_process_ns(struct lttng_session *session, * "namespaces: Use task_lock and not rcu to protect nsproxy" * for details. */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) || \ +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0) || \ LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,36, 3,14,0,0) || \ LTTNG_UBUNTU_KERNEL_RANGE(3,16,1,11, 3,17,0,0) || \ LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,13,0, 3,11,0,0,0,0)) @@ -562,7 +576,7 @@ void lttng_statedump_process_ns(struct lttng_session *session, proxy = task_nsproxy(p); #endif if (proxy) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0)) trace_lttng_statedump_process_cgroup_ns(session, p, proxy->cgroup_ns); #endif trace_lttng_statedump_process_ipc_ns(session, p, proxy->ipc_ns); @@ -571,11 +585,11 @@ void lttng_statedump_process_ns(struct lttng_session *session, #endif trace_lttng_statedump_process_net_ns(session, p, proxy->net_ns); trace_lttng_statedump_process_uts_ns(session, p, proxy->uts_ns); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) trace_lttng_statedump_process_time_ns(session, p, proxy->time_ns); #endif } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) || \ +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,17,0) || \ LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,36, 3,14,0,0) || \ LTTNG_UBUNTU_KERNEL_RANGE(3,16,1,11, 3,17,0,0) || \ LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,13,0, 3,11,0,0,0,0))