[PATCH 47/56] kenel/trace: support compiling out splice

From: Pieter Smith
Date: Thu Nov 13 2014 - 16:31:20 EST


Compile out splice support from trace when the splice-family of syscalls is not
supported by the system (i.e. CONFIG_SYSCALL_SPLICE is undefined).

Signed-off-by: Pieter Smith <pieter@xxxxxxxxxx>
---
kernel/trace/trace.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 8a52839..e672979 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -938,6 +938,7 @@ out:
return ret;
}

+#ifdef CONFIG_SYSCALL_SPLICE
static ssize_t trace_seq_to_buffer(struct trace_seq *s, void *buf, size_t cnt)
{
int len;
@@ -953,6 +954,7 @@ static ssize_t trace_seq_to_buffer(struct trace_seq *s, void *buf, size_t cnt)
s->readpos += cnt;
return cnt;
}
+#endif /* #ifdef CONFIG_SYSCALL_SPLICE */

unsigned long __read_mostly tracing_thresh;

@@ -4552,6 +4554,7 @@ out:
return sret;
}

+#ifdef CONFIG_SYSCALL_SPLICE
static void tracing_spd_release_pipe(struct splice_pipe_desc *spd,
unsigned int idx)
{
@@ -4690,6 +4693,7 @@ out_err:
mutex_unlock(&iter->mutex);
goto out;
}
+#endif /* #ifdef CONFIG_SYSCALL_SPLICE */

static ssize_t
tracing_entries_read(struct file *filp, char __user *ubuf,
@@ -5164,8 +5168,11 @@ static int tracing_buffers_open(struct inode *inode, struct file *filp);
static ssize_t tracing_buffers_read(struct file *filp, char __user *ubuf,
size_t count, loff_t *ppos);
static int tracing_buffers_release(struct inode *inode, struct file *file);
+
+#ifdef CONFIG_SYSCALL_SPLICE
static ssize_t tracing_buffers_splice_read(struct file *file, loff_t *ppos,
struct pipe_inode_info *pipe, size_t len, unsigned int flags);
+#endif /* #ifdef CONFIG_SYSCALL_SPLICE */

static int snapshot_raw_open(struct inode *inode, struct file *filp)
{
@@ -5217,7 +5224,7 @@ static const struct file_operations tracing_pipe_fops = {
.open = tracing_open_pipe,
.poll = tracing_poll_pipe,
.read = tracing_read_pipe,
- .splice_read = tracing_splice_read_pipe,
+ SPLICE_READ_INIT(tracing_splice_read_pipe)
.release = tracing_release_pipe,
.llseek = no_llseek,
};
@@ -5271,7 +5278,7 @@ static const struct file_operations snapshot_raw_fops = {
.open = snapshot_raw_open,
.read = tracing_buffers_read,
.release = tracing_buffers_release,
- .splice_read = tracing_buffers_splice_read,
+ SPLICE_READ_INIT(tracing_buffers_splice_read)
.llseek = no_llseek,
};

@@ -5464,6 +5471,7 @@ static const struct pipe_buf_operations buffer_pipe_buf_ops = {
.get = buffer_pipe_buf_get,
};

+#ifdef CONFIG_SYSCALL_SPLICE
/*
* Callback from splice_to_pipe(), if we need to release some pages
* at the end of the spd in case we error'ed out in filling the pipe.
@@ -5605,13 +5613,14 @@ out:

return ret;
}
+#endif /* #ifdef CONFIG_SYSCALL_SPLICE */

static const struct file_operations tracing_buffers_fops = {
.open = tracing_buffers_open,
.read = tracing_buffers_read,
.poll = tracing_buffers_poll,
.release = tracing_buffers_release,
- .splice_read = tracing_buffers_splice_read,
+ SPLICE_READ_INIT(tracing_buffers_splice_read)
.llseek = no_llseek,
};

--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/