X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Flttng-statedump-impl.c;h=06088ad274ff2ef46152b0f4e93e6ebd8330e075;hb=928a843e1f731fd83e17ff90af697eb39387d7f7;hp=4dfbca0b29dcc8b11b81099cd43f2ab97376c573;hpb=a9f6bb33069ccdb55a38a3aff7e10c844f03aaf9;p=lttng-modules.git diff --git a/src/lttng-statedump-impl.c b/src/lttng-statedump-impl.c index 4dfbca0b..06088ad2 100644 --- a/src/lttng-statedump-impl.c +++ b/src/lttng-statedump-impl.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -32,8 +31,11 @@ #include #include +#include + #include #include +#include #include #include #include @@ -195,7 +197,29 @@ enum lttng_process_status { }; -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,0,0)) + +#define LTTNG_PART_STRUCT_TYPE struct block_device + +static +int lttng_get_part_name(struct gendisk *disk, struct block_device *part, char *name_buf) +{ + int ret; + + ret = snprintf(name_buf, BDEVNAME_SIZE, "%pg", part); + if (ret < 0 || ret >= BDEVNAME_SIZE) + return -ENOSYS; + + return 0; +} + +static +dev_t lttng_get_part_devt(struct block_device *part) +{ + return part->bd_dev; +} + +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) #define LTTNG_PART_STRUCT_TYPE struct block_device @@ -332,7 +356,7 @@ int lttng_enumerate_block_devices(struct lttng_kernel_session *session) * suppressed */ if (get_capacity(disk) == 0 || - (disk->flags & GENHD_FL_SUPPRESS_PARTITION_INFO)) + (disk->flags & LTTNG_GENHD_FL_HIDDEN)) continue; ret = lttng_statedump_each_block_device(session, disk); @@ -770,7 +794,7 @@ int do_lttng_statedump(struct lttng_kernel_session *session) * is to guarantee that each CPU has been in a state where is was in * syscall mode (i.e. not in a trap, an IRQ or a soft IRQ). */ - get_online_cpus(); + lttng_cpus_read_lock(); atomic_set(&kernel_threads_to_run, num_online_cpus()); for_each_online_cpu(cpu) { INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func); @@ -778,7 +802,7 @@ int do_lttng_statedump(struct lttng_kernel_session *session) } /* Wait for all threads to run */ __wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0)); - put_online_cpus(); + lttng_cpus_read_unlock(); /* Our work is done */ trace_lttng_statedump_end(session); return 0;