From: "Brian F. G. Bidulock" <bidulock@openss7.org>
To: Theodore Tso <tytso@mit.edu>, linux-kernel@vger.kernel.org
Subject: Re: [RFC] Slimming down struct inode
Date: Thu, 15 Jun 2006 02:27:15 -0600 [thread overview]
Message-ID: <20060615022715.A5168@openss7.org> (raw)
In-Reply-To: <20060615044302.GA7318@thunk.org>; from tytso@mit.edu on Thu, Jun 15, 2006 at 12:43:02AM -0400
Theodore,
On Thu, 15 Jun 2006, Theodore Tso wrote:
>
> I'm not particularly sympathetic to out of tree implementations,
I believe you asked for comments; not proposed to offer sympathy.
> especially one which is as (NOT!) likely to be merged as STREAMS
> support. Out of tree patches can always patch struct inode to add all
> the bloat they want.
Bloat that nobody complained about for 10 years or so... Sounds pretty
antagonistic to me. Streams are pretty basic character devices.
> Also, it souinds like you're not usually using
> i_pipe as a true pointer to a struct pipe_inode_info, but rather as
> kludged location to stash your v_str pointer.
It points to a STREAMS-based FIFO which, of course, uses a Stream head
structure instead of a pipe_inode_info structure. Is is used in the
same fashion as Linux FIFOs use the pointer: to attach information to
an inode in a foreign filesystem. generic_ip and such does not help
here because they are already used by the foreign filesystem.
The cdev structure used to have a private pointer (cd_private) that
could be used to the same effect, but it disappeared some time ago when
char_device was reworked into cdev. block_device still has a bd_private
pointer. Merging i_pipe will remove the ability for a character
device driver to association a private pointer with the inode at open
to obtain FIFO-like behaviour (where the device is associated with the
specific inode rather than the device number), reducing the flexibility
of the Linux VFS.
i_pipe is not necessary for Unnamed FIFOs or pipes in Linux (those
inodes are allocated from the pipefs and could very well use the
generic_ip pointer. i_pipe is only necessary for named FIFOs because
these are attached to inodes belonging to filesystems foreign to the
pipefs. It is a slim special case of file on file mounting. Regardless
of STREAMS I think that it deserves to be separate from i_cdev and
i_bdev.
All other basic character device mechanisms either allocate their own
inodes or hang their private data off of the open file pointer. As
do STREAMS, which, aside from STREAMS-based FIFOs are basic character
devices.
> Why not just have your
> STREAMS implementation patch include/linux/fs.h to add a v_str pointer?
Because it does not patch the kernel but simply loads as a set of
GPL'ed kernel modules.
prev parent reply other threads:[~2006-06-15 8:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-09 23:50 [RFC] Slimming down struct inode Theodore Ts'o
2006-06-10 0:24 ` Bernd Eckenfels
2006-06-10 1:27 ` Al Viro
2006-06-10 1:56 ` Theodore Tso
2006-06-10 6:24 ` Stefan Richter
2006-06-10 10:48 ` Jan Engelhardt
2006-06-10 15:04 ` Jeff Garzik
2006-06-13 4:35 ` Nathan Scott
2006-06-13 4:32 ` Nathan Scott
2006-06-13 14:00 ` Avi Kivity
2006-06-13 17:44 ` Theodore Tso
2006-06-13 18:08 ` Avi Kivity
2006-06-13 20:10 ` Jan Engelhardt
2006-06-13 20:25 ` Avi Kivity
2006-06-13 22:41 ` Nathan Scott
2006-06-14 10:29 ` Nikita Danilov
2006-06-14 21:50 ` Nathan Scott
2006-06-15 5:49 ` Theodore Tso
2006-06-15 7:01 ` Nathan Scott
2006-06-15 8:46 ` Brian F. G. Bidulock
2006-06-15 10:20 ` Nathan Scott
2006-06-14 23:27 ` Jan Engelhardt
2006-06-15 10:09 ` Nikita Danilov
2006-06-10 11:03 ` Tomasz Torcz
2006-06-10 15:06 ` Jeff Garzik
2006-06-15 0:16 ` Brian F. G. Bidulock
2006-06-15 4:43 ` Theodore Tso
2006-06-15 8:27 ` Brian F. G. Bidulock [this message]
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=20060615022715.A5168@openss7.org \
--to=bidulock@openss7.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tytso@mit.edu \
/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.