From patchwork Mon Dec 7 05:37:17 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hooanon05@yahoo.co.jp X-Patchwork-Id: 40496 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from chlorine.canonical.com (chlorine.canonical.com [91.189.94.204]) by ozlabs.org (Postfix) with ESMTP id DB01AB6F14 for ; Tue, 8 Dec 2009 00:40:16 +1100 (EST) Received: from localhost ([127.0.0.1] helo=chlorine.canonical.com) by chlorine.canonical.com with esmtp (Exim 4.60) (envelope-from ) id 1NHdou-0001EG-G7; Mon, 07 Dec 2009 13:40:08 +0000 Received: from mtoichi14.ns.itscom.net ([219.110.2.184]) by chlorine.canonical.com with esmtp (Exim 4.60) (envelope-from ) id 1NHWHl-0000x0-Jw for kernel-team@lists.ubuntu.com; Mon, 07 Dec 2009 05:37:26 +0000 Received: from mtiichi13.ns.itscom.net ([unknown]) by mtoichi14.ns.itscom.net with ESMTP id nB75bI3P007008 Mon, 7 Dec 2009 14:37:18 +0900 (JST) Received: from jrobl (h219-110-67-158.catv02.itscom.jp [219.110.67.158]) by mtiichi13.ns.itscom.net with ESMTP id nB75bIKV015553 ; Mon, 7 Dec 2009 14:37:18 +0900 (JST) Received: from jro by jrobl id 1NHWHd-0003TA-85 ; Mon, 07 Dec 2009 14:37:17 +0900 From: hooanon05@yahoo.co.jp Subject: Re: aufs on staging To: Greg KH In-Reply-To: <20091207050649.GA24193@kroah.com> References: <43e72e890912041330s7c421360i72cb59b4b2db9a9d@mail.gmail.com> <20091205005821.GA9368@kroah.com> <43e72e890912041947p247fd37el7c259cc36bcf31bb@mail.gmail.com> <37786d4b0912061332i5dec6155o64d29a1a65adaea3@mail.gmail.com> <7704.1260160045@jrobl> <20091207050649.GA24193@kroah.com> Date: Mon, 07 Dec 2009 14:37:17 +0900 Message-ID: <13339.1260164237@jrobl> X-Mailman-Approved-At: Mon, 07 Dec 2009 13:40:05 +0000 Cc: Ubuntu Kernel Team X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.8 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: kernel-team-bounces@lists.ubuntu.com Errors-To: kernel-team-bounces@lists.ubuntu.com Greg KH: > Ok, if aufs relies on exports that Christoph is not going to accept, > then there's nothing I can do to add the code to the kernel. > > _unless_ the code will work if it is built in. What symbols are needed > by aufs, and is only to allow it to be built as a module, but not as a > built-in filesystem? > > If built-in will work, then it could work in staging, right? The word 'export' I use here might be incorrect. Strictly speaking, it is "make some functions global" instead of "export symbols to external module." Actually the aufs patches I sent to LKML were not to build aufs as a module. It supports CONFIG_AUFS_FS=y only. There exist another GIT tree to build aufs as a module. Thanks J. R. Okajima diff --git a/fs/namei.c b/fs/namei.c index d11f404..7d28f56 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1219,7 +1219,7 @@ out: * needs parent already locked. Doesn't follow mounts. * SMP-safe. */ -static struct dentry *lookup_hash(struct nameidata *nd) +struct dentry *lookup_hash(struct nameidata *nd) { int err; @@ -1229,7 +1229,7 @@ static struct dentry *lookup_hash(struct nameidata *nd) return __lookup_hash(&nd->last, nd->path.dentry, nd); } -static int __lookup_one_len(const char *name, struct qstr *this, +int __lookup_one_len(const char *name, struct qstr *this, struct dentry *base, int len) { unsigned long hash; diff --git a/fs/splice.c b/fs/splice.c index 7394e9e..77184f0 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1051,8 +1051,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); /* * Attempt to initiate a splice from pipe to file. */ -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, - loff_t *ppos, size_t len, unsigned int flags) +long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); @@ -1078,9 +1078,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, /* * Attempt to initiate a splice from a file to a pipe. */ -static long do_splice_to(struct file *in, loff_t *ppos, - struct pipe_inode_info *pipe, size_t len, - unsigned int flags) +long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) { ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); diff --git a/include/linux/namei.h b/include/linux/namei.h index ec0f607..1438153 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h @@ -75,6 +75,9 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); extern void release_open_intent(struct nameidata *); +extern struct dentry *lookup_hash(struct nameidata *nd); +extern int __lookup_one_len(const char *name, struct qstr *this, + struct dentry *base, int len); extern struct dentry *lookup_one_len(const char *, struct dentry *, int); extern struct dentry *lookup_one_noperm(const char *, struct dentry *); diff --git a/include/linux/splice.h b/include/linux/splice.h index 18e7c7c..8393b5c 100644 --- a/include/linux/splice.h +++ b/include/linux/splice.h @@ -82,4 +82,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *, extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, splice_direct_actor *); +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); +extern long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); + #endif