X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fringbuffer%2Fring_buffer_vfs.c;h=f6c0e3dfe21dfc56ee4ee6078bb078c3053c4c79;hb=fc94c945a818ebfff1b05c08d11cef564208749c;hp=274e976c974ecacf4edf293f648a428448bf8f55;hpb=4dce5a4879ae1989d091f6969b143a41ba76ba1f;p=deliverable%2Flttng-modules.git diff --git a/lib/ringbuffer/ring_buffer_vfs.c b/lib/ringbuffer/ring_buffer_vfs.c index 274e976c..f6c0e3df 100644 --- a/lib/ringbuffer/ring_buffer_vfs.c +++ b/lib/ringbuffer/ring_buffer_vfs.c @@ -1,23 +1,10 @@ -/* +/* SPDX-License-Identifier: (GPL-2.0 OR LGPL-2.1) + * * ring_buffer_vfs.c * * Ring Buffer VFS file operations. * * Copyright (C) 2010-2012 Mathieu Desnoyers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; only - * version 2.1 of the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include @@ -191,15 +178,6 @@ long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, switch (cmd) { case RING_BUFFER_SNAPSHOT: - /* - * First, ensure we perform a "final" flush onto the - * stream. This will ensure we create a packet of - * padding if we encounter an empty packet. This ensures - * the time-stamps right before the snapshot is used as - * end of packet timestamp. - */ - if (!buf->quiescent) - lib_ring_buffer_switch_remote_empty(buf); return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, &buf->prod_snapshot); case RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS: @@ -282,6 +260,9 @@ long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, case RING_BUFFER_FLUSH: lib_ring_buffer_switch_remote(buf); return 0; + case RING_BUFFER_FLUSH_EMPTY: + lib_ring_buffer_switch_remote_empty(buf); + return 0; default: return -ENOIOCTLCMD; } @@ -332,15 +313,6 @@ long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, switch (cmd) { case RING_BUFFER_COMPAT_SNAPSHOT: - /* - * First, ensure we perform a "final" flush onto the - * stream. This will ensure we create a packet of - * padding if we encounter an empty packet. This ensures - * the time-stamps right before the snapshot is used as - * end of packet timestamp. - */ - if (!buf->quiescent) - lib_ring_buffer_switch_remote_empty(buf); return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, &buf->prod_snapshot); case RING_BUFFER_COMPAT_SNAPSHOT_SAMPLE_POSITIONS: @@ -439,6 +411,9 @@ long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, case RING_BUFFER_COMPAT_FLUSH: lib_ring_buffer_switch_remote(buf); return 0; + case RING_BUFFER_COMPAT_FLUSH_EMPTY: + lib_ring_buffer_switch_remote_empty(buf); + return 0; default: return -ENOIOCTLCMD; } @@ -471,8 +446,8 @@ const struct file_operations lib_ring_buffer_file_operations = { EXPORT_SYMBOL_GPL(lib_ring_buffer_file_operations); MODULE_LICENSE("GPL and additional rights"); -MODULE_AUTHOR("Mathieu Desnoyers"); -MODULE_DESCRIPTION("Ring Buffer Library VFS"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng ring buffer library"); MODULE_VERSION(__stringify(LTTNG_MODULES_MAJOR_VERSION) "." __stringify(LTTNG_MODULES_MINOR_VERSION) "." __stringify(LTTNG_MODULES_PATCHLEVEL_VERSION)