All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
	penberg@cs.helsinki.fi, eduard.munteanu@linux360.ro,
	viro@zeniv.linux.org.uk, tglx@linutronix.de, mingo@elte.hu,
	adobriyan@gmail.com
Subject: [tip:tracing/kmemtrace-v2] kmemtrace, fs: uninline simple_transaction_set()
Date: Fri, 3 Apr 2009 10:34:22 GMT	[thread overview]
Message-ID: <tip-76791ab2d5e00c1eef728a8df4347ba133760fb8@git.kernel.org> (raw)
In-Reply-To: <1237898630.25315.83.camel@penberg-laptop>

Commit-ID:  76791ab2d5e00c1eef728a8df4347ba133760fb8
Gitweb:     http://git.kernel.org/tip/76791ab2d5e00c1eef728a8df4347ba133760fb8
Author:     Ingo Molnar <mingo@elte.hu>
AuthorDate: Wed, 25 Mar 2009 16:48:35 +0100
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 3 Apr 2009 12:09:09 +0200

kmemtrace, fs: uninline simple_transaction_set()

Impact: cleanup

We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace
changes), but this is not possible currently without breaking the
build because fs.h has an implicit include file depedency: it
uses PAGE_SIZE but does not include asm/page.h which defines it.

This problem gets masked in practice because most fs.h using sites
use rcupreempt.h (and other headers) which includes percpu.h which
brings in asm/page.h indirectly.

We cannot add asm/page.h to asm/fs.h because page.h is not an
exported header.

Move simple_transaction_set() to the other simple-transaction
file helpers in fs/libfs.c.

This removes the include file hell and also reduces
kernel size a bit.

Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
Cc: paulmck@linux.vnet.ibm.com
LKML-Reference: <1237898630.25315.83.camel@penberg-laptop>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 fs/libfs.c         |   16 ++++++++++++++++
 include/linux/fs.h |   14 +-------------
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/fs/libfs.c b/fs/libfs.c
index 4910a36..cd22319 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -575,6 +575,21 @@ ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
  * possibly a read which collects the result - which is stored in a
  * file-local buffer.
  */
+
+void simple_transaction_set(struct file *file, size_t n)
+{
+	struct simple_transaction_argresp *ar = file->private_data;
+
+	BUG_ON(n > SIMPLE_TRANSACTION_LIMIT);
+
+	/*
+	 * The barrier ensures that ar->size will really remain zero until
+	 * ar->data is ready for reading.
+	 */
+	smp_mb();
+	ar->size = n;
+}
+
 char *simple_transaction_get(struct file *file, const char __user *buf, size_t size)
 {
 	struct simple_transaction_argresp *ar;
@@ -820,6 +835,7 @@ EXPORT_SYMBOL(simple_sync_file);
 EXPORT_SYMBOL(simple_unlink);
 EXPORT_SYMBOL(simple_read_from_buffer);
 EXPORT_SYMBOL(memory_read_from_buffer);
+EXPORT_SYMBOL(simple_transaction_set);
 EXPORT_SYMBOL(simple_transaction_get);
 EXPORT_SYMBOL(simple_transaction_read);
 EXPORT_SYMBOL(simple_transaction_release);
diff --git a/include/linux/fs.h b/include/linux/fs.h
index fc4dc28..e4de2b5 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2323,19 +2323,7 @@ ssize_t simple_transaction_read(struct file *file, char __user *buf,
 				size_t size, loff_t *pos);
 int simple_transaction_release(struct inode *inode, struct file *file);
 
-static inline void simple_transaction_set(struct file *file, size_t n)
-{
-	struct simple_transaction_argresp *ar = file->private_data;
-
-	BUG_ON(n > SIMPLE_TRANSACTION_LIMIT);
-
-	/*
-	 * The barrier ensures that ar->size will really remain zero until
-	 * ar->data is ready for reading.
-	 */
-	smp_mb();
-	ar->size = n;
-}
+void simple_transaction_set(struct file *file, size_t n);
 
 /*
  * simple attribute files

  parent reply	other threads:[~2009-04-03 10:35 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1237898630.25315.83.camel@penberg-laptop>
2009-03-25 15:18 ` [tip:tracing/kmemtrace] RCU, kmemtrace: fix linux/rcutree.h and linux/rcuclassic.h dependencies Ingo Molnar
2009-03-25 15:33 ` [tip:tracing/kmemtrace] fs, kmemtrace: fix linux/fdtable.h header file dependencies Ingo Molnar
2009-03-25 15:51 ` [tip:tracing/kmemtrace] rcutree: fix rcu_tree_trace.c data structure dependencies Ingo Molnar
2009-03-25 16:11   ` Ingo Molnar
2009-03-25 16:52     ` Paul E. McKenney
2009-03-25 16:57       ` Ingo Molnar
2009-03-26  3:34         ` Paul E. McKenney
2009-03-25 15:54 ` [tip:tracing/kmemtrace] fs, kmemtrace: fix fs.h's PAGE_SIZE dependency Ingo Molnar
2009-03-25 16:06 ` [tip:tracing/kmemtrace] rcutree: fix rcupreempt.c data structure dependencies Ingo Molnar
2009-03-25 16:51 ` [tip:tracing/kmemtrace] fs.h: uninline simple_transaction_set() Ingo Molnar
2009-03-25 17:01   ` Ingo Molnar
2009-03-26 15:48   ` Al Viro
2009-03-27  9:26     ` Ingo Molnar
2009-03-25 17:30 ` Ingo Molnar
2009-03-28 11:45 ` Ingo Molnar
2009-04-03 10:34 ` Ingo Molnar [this message]
2009-04-03 10:34 ` [tip:tracing/kmemtrace-v2] kmemtrace, fs: fix linux/fdtable.h header file dependencies Ingo Molnar
2009-04-03 10:35 ` [tip:tracing/kmemtrace-v2] kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies Ingo Molnar
2009-04-03 10:36 ` [tip:tracing/kmemtrace-v2] kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies Ingo Molnar
2009-04-03 10:36 ` [tip:tracing/kmemtrace-v2] kmemtrace, rcu: fix rcupreempt.c " Ingo Molnar
2009-04-03 10:36 ` [tip:tracing/kmemtrace-v2] kmemtrace, rcu: don't include unnecessary headers, allow kmemtrace w/ tracepoints Eduard - Gabriel Munteanu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-76791ab2d5e00c1eef728a8df4347ba133760fb8@git.kernel.org \
    --to=mingo@elte.hu \
    --cc=adobriyan@gmail.com \
    --cc=eduard.munteanu@linux360.ro \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=penberg@cs.helsinki.fi \
    --cc=tglx@linutronix.de \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.