[DTrace-devel] [PATCH] Add support for the ftruncate() action
Kris Van Hees
kris.van.hees at oracle.com
Thu Nov 18 23:46:54 UTC 2021
On Thu, Nov 04, 2021 at 06:40:51PM -0400, eugene.loh at oracle.com wrote:
> From: Eugene Loh <eugene.loh at oracle.com>
>
> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
> ---
> libdtrace/dt_cg.c | 2 ++
> libdtrace/dt_consume.c | 9 +++++++++
> test/unittest/funcs/tst.ftruncate.sh | 8 +-------
> 3 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
> index 58f8b5c7..b5b66a49 100644
> --- a/libdtrace/dt_cg.c
> +++ b/libdtrace/dt_cg.c
> @@ -1326,6 +1326,8 @@ dt_cg_act_exit(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
> static void
> dt_cg_act_ftruncate(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
> {
> + dt_rec_add(pcb->pcb_hdl, dt_cg_fill_gap, DTRACEACT_LIBACT, 0, 1, NULL,
> + DT_ACT_FTRUNCATE);
> }
>
> static void
> diff --git a/libdtrace/dt_consume.c b/libdtrace/dt_consume.c
> index c66c2654..0dfc7b5f 100644
> --- a/libdtrace/dt_consume.c
> +++ b/libdtrace/dt_consume.c
> @@ -2330,6 +2330,15 @@ dt_consume_one_probe(dtrace_hdl_t *dtp, FILE *fp, char *data, uint32_t size,
> return DTRACE_WORKSTATUS_ERROR;
>
> i++;
> + continue;
> + case DT_ACT_FTRUNCATE:
> + if (fp == NULL)
> + continue;
> +
> + fflush(fp);
> + ftruncate(fileno(fp), 0);
> + fseeko(fp, 0, SEEK_SET);
> +
> continue;
> }
> }
> diff --git a/test/unittest/funcs/tst.ftruncate.sh b/test/unittest/funcs/tst.ftruncate.sh
> index 9dfe6f35..59ca9beb 100755
> --- a/test/unittest/funcs/tst.ftruncate.sh
> +++ b/test/unittest/funcs/tst.ftruncate.sh
> @@ -1,11 +1,10 @@
> #!/bin/bash
> #
> # Oracle Linux DTrace.
> -# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
> +# Copyright (c) 2006, 2021, Oracle and/or its affiliates. All rights reserved.
> # Licensed under the Universal Permissive License v 1.0 as shown at
> # http://oss.oracle.com/licenses/upl.
> #
> -# @@xfail: dtv2
> script()
> {
> $dtrace $dt_flags -q -o $tmpfile -s /dev/stdin <<EOF
> @@ -28,11 +27,6 @@ script()
> EOF
> }
>
> -if [ $# != 1 ]; then
> - echo expected one argument: '<'dtrace-path'>'
> - exit 2
> -fi
> -
> dtrace=$1
> tmpfile=$tmpdir/tst.ftruncate.$$
>
> --
> 2.18.4
>
>
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel
More information about the DTrace-devel
mailing list