[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-fsdevel
Subject:    Re: FIFOs and Installable FSs
From:       Alexander Viro <viro () math ! psu ! edu>
Date:       1999-06-16 22:08:12
[Download RAW message or body]



On Wed, 16 Jun 1999, Steve Dodd wrote:

> As for 2.2, you'll have to kludge some blank space into the beginning of
> your fs-specific inode info. Al: are there any plans to back port the inode
> fix to 2.2? It should be small enough to be 'obviously correct', surely?

Yes [said he, fully expecting *really* bad bug report to appear 2 seconds
after sending that], but there is one gotcha - patch changes struct inode.
That is, breaks binary compatibility. If there will be something really 
serious requiring such changes anyway - OK, but doing that just for the
heck of it... Not good. 2.2 is supposed to be stable. Binary compatibility
within the kernel is not a holy cow, but frankly, in that case the reason
to break it is pretty weak.

struct foo_inode_info {
#if LINUX_VERSION_CODE < 0x20307
	struct pipe_inode_info *dummy;
#elif LINUX_VERSION_CODE >= 0x20400
#warning "remove this kludge"
#endif
	...
}
is not too terrible. Add it and forget about the thing - it will remind
about itself in 2.4. What's worse, you cannot use ->u.generic_ip for
FIFO-supporting filesystems in 2.2, but there's nothing to do here. Well,
there is a way, but *that* is really kludgy: we can turn ->u.pipe_i into
struct bad_kludge { void * dummy; struct pipe_inode_info *i_pipe; }; and
go ahead (with the corresponding change in the snippet above), but it's
just too ugly.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic