From: Nick Piggin <npiggin@suse.de>
To: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Eric Paris <eparis@redhat.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, viro@zeniv.linux.org.uk, jmorris@namei.org,
zohar@us.ibm.com, jack@suse.cz, jmalicki@metacarta.com,
dsmith@redhat.com, hch@lst.de, john@johnmccutchan.com,
rlove@rlove.org, ebiederm@xmission.com,
heiko.carstens@de.ibm.com, penguin-kernel@I-love.SAKURA.ne.jp,
mszeredi@suse.cz, jens.axboe@oracle.com,
akpm@linux-foundation.org, matthew@wil.cx,
hugh.dickins@tiscali.co.uk, kamezawa.hiroyu@jp.fujitsu.com,
nishimura@mxp.nes.nec.co.jp, davem@davemloft.net, arnd@arndb.de,
eric.dumazet@gmail.com
Subject: Re: [RFC PATCH 5/6] vfs: make init-file static
Date: Fri, 4 Dec 2009 05:04:43 +0100 [thread overview]
Message-ID: <20091204040443.GD22022@wotan.suse.de> (raw)
In-Reply-To: <20091203224402.GA12995@us.ibm.com>
On Thu, Dec 03, 2009 at 04:44:02PM -0600, Serge E. Hallyn wrote:
> Quoting Eric Paris (eparis@redhat.com):
> > init-file is no longer used by anything except alloc_file. Make it static and
> > remove from headers.
These look like pretty good changes to me, FWIW. I had found myself
wondering about this recently so it's good to see it improved.
> Should these go through a deprecation period? (Same for the next patch)
Maybe waiting a release or two couldn't hurt. Unless Eric you
have some other changes in mind after these?
> > Signed-off-by: Eric Paris <eparis@redhat.com>
> > ---
> >
> > fs/file_table.c | 73 ++++++++++++++++++++++----------------------------
> > include/linux/file.h | 3 --
> > 2 files changed, 32 insertions(+), 44 deletions(-)
> >
> > diff --git a/fs/file_table.c b/fs/file_table.c
> > index 4bef4c0..0f9d2f2 100644
> > --- a/fs/file_table.c
> > +++ b/fs/file_table.c
> > @@ -150,53 +150,16 @@ fail:
> > EXPORT_SYMBOL(get_empty_filp);
> >
> > /**
> > - * alloc_file - allocate and initialize a 'struct file'
> > - * @mnt: the vfsmount on which the file will reside
> > - * @dentry: the dentry representing the new file
> > - * @mode: the mode with which the new file will be opened
> > - * @fop: the 'struct file_operations' for the new file
> > - *
> > - * Use this instead of get_empty_filp() to get a new
> > - * 'struct file'. Do so because of the same initialization
> > - * pitfalls reasons listed for init_file(). This is a
> > - * preferred interface to using init_file().
> > - *
> > - * If all the callers of init_file() are eliminated, its
> > - * code should be moved into this function.
> > - */
> > -struct file *alloc_file(struct vfsmount *mnt, struct dentry *dentry,
> > - fmode_t mode, const struct file_operations *fop)
> > -{
> > - struct file *file;
> > -
> > - file = get_empty_filp();
> > - if (!file)
> > - return NULL;
> > -
> > - init_file(file, mnt, dentry, mode, fop);
> > - return file;
> > -}
> > -EXPORT_SYMBOL(alloc_file);
> > -
> > -/**
> > * init_file - initialize a 'struct file'
> > * @file: the already allocated 'struct file' to initialized
> > * @mnt: the vfsmount on which the file resides
> > * @dentry: the dentry representing this file
> > * @mode: the mode the file is opened with
> > * @fop: the 'struct file_operations' for this file
> > - *
> > - * Use this instead of setting the members directly. Doing so
> > - * avoids making mistakes like forgetting the mntget() or
> > - * forgetting to take a write on the mnt.
> > - *
> > - * Note: This is a crappy interface. It is here to make
> > - * merging with the existing users of get_empty_filp()
> > - * who have complex failure logic easier. All users
> > - * of this should be moving to alloc_file().
> > */
> > -int init_file(struct file *file, struct vfsmount *mnt, struct dentry *dentry,
> > - fmode_t mode, const struct file_operations *fop)
> > +static int init_file(struct file *file, struct vfsmount *mnt,
> > + struct dentry *dentry, fmode_t mode,
> > + const struct file_operations *fop)
> > {
> > int error = 0;
> > file->f_path.dentry = dentry;
> > @@ -218,7 +181,35 @@ int init_file(struct file *file, struct vfsmount *mnt, struct dentry *dentry,
> > }
> > return error;
> > }
> > -EXPORT_SYMBOL(init_file);
> > +
> > +/**
> > + * alloc_file - allocate and initialize a 'struct file'
> > + * @mnt: the vfsmount on which the file will reside
> > + * @dentry: the dentry representing the new file
> > + * @mode: the mode with which the new file will be opened
> > + * @fop: the 'struct file_operations' for the new file
> > + *
> > + * Use this instead of get_empty_filp() to get a new
> > + * 'struct file'. Do so because of the same initialization
> > + * pitfalls reasons listed for init_file(). This is a
> > + * preferred interface to using init_file().
> > + *
> > + * If all the callers of init_file() are eliminated, its
> > + * code should be moved into this function.
> > + */
> > +struct file *alloc_file(struct vfsmount *mnt, struct dentry *dentry,
> > + fmode_t mode, const struct file_operations *fop)
> > +{
> > + struct file *file;
> > +
> > + file = get_empty_filp();
> > + if (!file)
> > + return NULL;
> > +
> > + init_file(file, mnt, dentry, mode, fop);
> > + return file;
> > +}
> > +EXPORT_SYMBOL(alloc_file);
> >
> > void fput(struct file *file)
> > {
> > diff --git a/include/linux/file.h b/include/linux/file.h
> > index 335a0a5..6a8d361 100644
> > --- a/include/linux/file.h
> > +++ b/include/linux/file.h
> > @@ -18,9 +18,6 @@ extern void drop_file_write_access(struct file *file);
> > struct file_operations;
> > struct vfsmount;
> > struct dentry;
> > -extern int init_file(struct file *, struct vfsmount *mnt,
> > - struct dentry *dentry, fmode_t mode,
> > - const struct file_operations *fop);
> > extern struct file *alloc_file(struct vfsmount *, struct dentry *dentry,
> > fmode_t mode, const struct file_operations *fop);
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <npiggin@suse.de>
To: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Eric Paris <eparis@redhat.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, viro@zeniv.linux.org.uk, jmorris@namei.org,
zohar@us.ibm.com, jack@suse.cz, jmalicki@metacarta.com,
dsmith@redhat.com, hch@lst.de, john@johnmccutchan.com,
rlove@rlove.org, ebiederm@xmission.com,
heiko.carstens@de.ibm.com, penguin-kernel@I-love.SAKURA.ne.jp,
mszeredi@suse.cz, jens.axboe@oracle.com,
akpm@linux-foundation.org, matthew@wil.cx,
hugh.dickins@tiscali.co.uk, kamezawa.hiroyu@jp.fujitsu.com,
nishimura@mxp.nes.nec.co.jp, davem@davemloft.net, arnd@arndb.de,
eric.dumazet@gmail.com
Subject: Re: [RFC PATCH 5/6] vfs: make init-file static
Date: Fri, 4 Dec 2009 05:04:43 +0100 [thread overview]
Message-ID: <20091204040443.GD22022@wotan.suse.de> (raw)
In-Reply-To: <20091203224402.GA12995@us.ibm.com>
On Thu, Dec 03, 2009 at 04:44:02PM -0600, Serge E. Hallyn wrote:
> Quoting Eric Paris (eparis@redhat.com):
> > init-file is no longer used by anything except alloc_file. Make it static and
> > remove from headers.
These look like pretty good changes to me, FWIW. I had found myself
wondering about this recently so it's good to see it improved.
> Should these go through a deprecation period? (Same for the next patch)
Maybe waiting a release or two couldn't hurt. Unless Eric you
have some other changes in mind after these?
> > Signed-off-by: Eric Paris <eparis@redhat.com>
> > ---
> >
> > fs/file_table.c | 73 ++++++++++++++++++++++----------------------------
> > include/linux/file.h | 3 --
> > 2 files changed, 32 insertions(+), 44 deletions(-)
> >
> > diff --git a/fs/file_table.c b/fs/file_table.c
> > index 4bef4c0..0f9d2f2 100644
> > --- a/fs/file_table.c
> > +++ b/fs/file_table.c
> > @@ -150,53 +150,16 @@ fail:
> > EXPORT_SYMBOL(get_empty_filp);
> >
> > /**
> > - * alloc_file - allocate and initialize a 'struct file'
> > - * @mnt: the vfsmount on which the file will reside
> > - * @dentry: the dentry representing the new file
> > - * @mode: the mode with which the new file will be opened
> > - * @fop: the 'struct file_operations' for the new file
> > - *
> > - * Use this instead of get_empty_filp() to get a new
> > - * 'struct file'. Do so because of the same initialization
> > - * pitfalls reasons listed for init_file(). This is a
> > - * preferred interface to using init_file().
> > - *
> > - * If all the callers of init_file() are eliminated, its
> > - * code should be moved into this function.
> > - */
> > -struct file *alloc_file(struct vfsmount *mnt, struct dentry *dentry,
> > - fmode_t mode, const struct file_operations *fop)
> > -{
> > - struct file *file;
> > -
> > - file = get_empty_filp();
> > - if (!file)
> > - return NULL;
> > -
> > - init_file(file, mnt, dentry, mode, fop);
> > - return file;
> > -}
> > -EXPORT_SYMBOL(alloc_file);
> > -
> > -/**
> > * init_file - initialize a 'struct file'
> > * @file: the already allocated 'struct file' to initialized
> > * @mnt: the vfsmount on which the file resides
> > * @dentry: the dentry representing this file
> > * @mode: the mode the file is opened with
> > * @fop: the 'struct file_operations' for this file
> > - *
> > - * Use this instead of setting the members directly. Doing so
> > - * avoids making mistakes like forgetting the mntget() or
> > - * forgetting to take a write on the mnt.
> > - *
> > - * Note: This is a crappy interface. It is here to make
> > - * merging with the existing users of get_empty_filp()
> > - * who have complex failure logic easier. All users
> > - * of this should be moving to alloc_file().
> > */
> > -int init_file(struct file *file, struct vfsmount *mnt, struct dentry *dentry,
> > - fmode_t mode, const struct file_operations *fop)
> > +static int init_file(struct file *file, struct vfsmount *mnt,
> > + struct dentry *dentry, fmode_t mode,
> > + const struct file_operations *fop)
> > {
> > int error = 0;
> > file->f_path.dentry = dentry;
> > @@ -218,7 +181,35 @@ int init_file(struct file *file, struct vfsmount *mnt, struct dentry *dentry,
> > }
> > return error;
> > }
> > -EXPORT_SYMBOL(init_file);
> > +
> > +/**
> > + * alloc_file - allocate and initialize a 'struct file'
> > + * @mnt: the vfsmount on which the file will reside
> > + * @dentry: the dentry representing the new file
> > + * @mode: the mode with which the new file will be opened
> > + * @fop: the 'struct file_operations' for the new file
> > + *
> > + * Use this instead of get_empty_filp() to get a new
> > + * 'struct file'. Do so because of the same initialization
> > + * pitfalls reasons listed for init_file(). This is a
> > + * preferred interface to using init_file().
> > + *
> > + * If all the callers of init_file() are eliminated, its
> > + * code should be moved into this function.
> > + */
> > +struct file *alloc_file(struct vfsmount *mnt, struct dentry *dentry,
> > + fmode_t mode, const struct file_operations *fop)
> > +{
> > + struct file *file;
> > +
> > + file = get_empty_filp();
> > + if (!file)
> > + return NULL;
> > +
> > + init_file(file, mnt, dentry, mode, fop);
> > + return file;
> > +}
> > +EXPORT_SYMBOL(alloc_file);
> >
> > void fput(struct file *file)
> > {
> > diff --git a/include/linux/file.h b/include/linux/file.h
> > index 335a0a5..6a8d361 100644
> > --- a/include/linux/file.h
> > +++ b/include/linux/file.h
> > @@ -18,9 +18,6 @@ extern void drop_file_write_access(struct file *file);
> > struct file_operations;
> > struct vfsmount;
> > struct dentry;
> > -extern int init_file(struct file *, struct vfsmount *mnt,
> > - struct dentry *dentry, fmode_t mode,
> > - const struct file_operations *fop);
> > extern struct file *alloc_file(struct vfsmount *, struct dentry *dentry,
> > fmode_t mode, const struct file_operations *fop);
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2009-12-04 4:04 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-03 19:58 [RFC PATCH 1/6] shmem: use alloc_file instead of init_file Eric Paris
2009-12-03 19:58 ` Eric Paris
2009-12-03 19:59 ` [RFC PATCH 2/6] pipes: use alloc-file instead of duplicating code Eric Paris
2009-12-03 19:59 ` Eric Paris
2009-12-04 6:08 ` Miklos Szeredi
2009-12-04 6:08 ` Miklos Szeredi
2009-12-04 6:08 ` Miklos Szeredi
2009-12-04 18:54 ` Eric Paris
2009-12-04 18:54 ` Eric Paris
2009-12-04 14:22 ` Jens Axboe
2009-12-04 14:22 ` Jens Axboe
2009-12-03 19:59 ` [RFC PATCH 3/6] inotify: use alloc_file instead of doing it internally Eric Paris
2009-12-03 19:59 ` Eric Paris
2009-12-04 6:58 ` Miklos Szeredi
2009-12-04 6:58 ` Miklos Szeredi
2009-12-04 6:58 ` Miklos Szeredi
2009-12-03 19:59 ` [RFC PATCH 4/6] networking: rework socket to fd mapping using alloc-file Eric Paris
2009-12-03 19:59 ` Eric Paris
2009-12-03 22:00 ` David Miller
2009-12-03 22:00 ` David Miller
2009-12-03 23:24 ` Eric Paris
2009-12-03 23:24 ` Eric Paris
2009-12-04 7:09 ` Miklos Szeredi
2009-12-04 7:09 ` Miklos Szeredi
2009-12-04 7:09 ` Miklos Szeredi
2009-12-03 19:59 ` [RFC PATCH 5/6] vfs: make init-file static Eric Paris
2009-12-03 19:59 ` Eric Paris
2009-12-03 22:44 ` Serge E. Hallyn
2009-12-03 22:44 ` Serge E. Hallyn
2009-12-04 4:04 ` Nick Piggin [this message]
2009-12-04 4:04 ` Nick Piggin
2009-12-03 19:59 ` [RFC PATCH 6/6] fs: move get_empty_filp() deffinition to internal.h Eric Paris
2009-12-03 19:59 ` Eric Paris
2009-12-04 7:12 ` Miklos Szeredi
2009-12-04 7:12 ` Miklos Szeredi
2009-12-04 7:12 ` Miklos Szeredi
2009-12-04 5:58 ` [RFC PATCH 1/6] shmem: use alloc_file instead of init_file Miklos Szeredi
2009-12-04 5:58 ` Miklos Szeredi
2009-12-04 5:58 ` Miklos Szeredi
2009-12-04 14:19 ` Eric Paris
2009-12-04 14:19 ` Eric Paris
2009-12-04 15:35 ` Serge E. Hallyn
2009-12-04 15:35 ` Serge E. Hallyn
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=20091204040443.GD22022@wotan.suse.de \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=davem@davemloft.net \
--cc=dsmith@redhat.com \
--cc=ebiederm@xmission.com \
--cc=eparis@redhat.com \
--cc=eric.dumazet@gmail.com \
--cc=hch@lst.de \
--cc=heiko.carstens@de.ibm.com \
--cc=hugh.dickins@tiscali.co.uk \
--cc=jack@suse.cz \
--cc=jens.axboe@oracle.com \
--cc=jmalicki@metacarta.com \
--cc=jmorris@namei.org \
--cc=john@johnmccutchan.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=matthew@wil.cx \
--cc=mszeredi@suse.cz \
--cc=nishimura@mxp.nes.nec.co.jp \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=rlove@rlove.org \
--cc=serue@us.ibm.com \
--cc=viro@zeniv.linux.org.uk \
--cc=zohar@us.ibm.com \
/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.