mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@bonn-fries.net>
To: Jeff Garzik <jgarzik@mandrakesoft.com>,
	torvalds@transmeta.com, viro@math.psu.edu
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	ext2-devel@lists.sourceforge.net
Subject: Re: PATCH 2.5.2.9: ext2 unbork fs.h (part 1/7)
Date: Mon, 7 Jan 2002 16:19:01 +0100	[thread overview]
Message-ID: <E16NbYF-0001Qq-00@starship.berlin> (raw)
In-Reply-To: <20020107132121.241311F6A@gtf.org>
In-Reply-To: <20020107132121.241311F6A@gtf.org>

On January 7, 2002 02:21 pm, Jeff Garzik wrote:
> Here's my idea for the solution.  Each patch in the series has been
> tested individually and can be applied individually, as long as all
> preceding patches are applied.  (ie. to apply and testing patch N,
> patches 1 through N-1 must also be applied)  The light testing consisted
> of unpacking, catting, and removing kernel trees, along with a fillmem
> runs to ensure that slab caches are properly purged.  An fsck was forced
> after each run of tests.
> 
> This is the first of seven steps in the Make Fs.h Happy program.
> It borrows direction from Daniel and Linus as well as my own.
> 
> patch1 (this patch): use accessor function ext2_i to access inode->u.ext2_i
> 	The rest of the patches borrows ideas but no code.  This patch
> 	is the only exception: it borrows substantially Daniel's ext2_i
> 	patch.
> patch2: use accessor function ext2_sb to access sb->u.ext2_sb
> patch3: dynamically allocate sb->u.ext2_sbp
> patch4: dynamically allocate inode->u.ext2_ip
> patch5: move include/linux/ext2*.h to fs/ext2
> 
> 	at this point we've reached the limits of how far the current
> 	VFS API will go.  inode and superblock fs-level private info
> 	is dynamically allocated.
> 
> patch6: add sb->s_op->{alloc,destroy}_inode to VFS API
> patch7: implement ext2 use of s_op->{alloc,destroy}

The two main problems I see with this are:

  - If a filesystem doesn't want to use genericp_ip/sbp then fs.h has
    to know about it.  Why should fs.h know about every filesystem in
    the world?

  - You are dreferencing a pointer, and have two allocations for every
    inode instead of one.

It's not horrible, it's just not optimal.

Moving the ext2 headers from include/linux to fs/ext2 is an interesting
feature of your patch, though it isn't essential to the idea you're
presenting.  But is there a good reason why ext2_fs_i.h and ext2_fs_sb.h
should remain separate from ext2_fs.h?  It looks like gratuitous
modularity to me.

Minor nit:

        if (!inode->u.ext2_ip)
                BUG();

You don't have to do this, if the pointer is null you will get a perfectly
fine oops.

--
Daniel

  parent reply	other threads:[~2002-01-07 15:16 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-07 13:21 Jeff Garzik
2002-01-07 14:13 ` Anton Altaparmakov
2002-01-07 15:33   ` Daniel Phillips
2002-01-07 21:27     ` Jeff Garzik
2002-01-08  6:32       ` Daniel Phillips
2002-01-08  6:31         ` Jeff Garzik
2002-01-08  6:38           ` Daniel Phillips
2002-01-07 16:01   ` Anton Altaparmakov
2002-01-07 16:23     ` Daniel Phillips
2002-01-07 17:25     ` Mark Zealey
2002-01-07 15:19 ` Daniel Phillips [this message]
2002-01-07 20:54   ` Juan Quintela
2002-01-08  4:10     ` Daniel Phillips
2002-01-07 21:25   ` Jeff Garzik
2002-01-08  3:06     ` Daniel Phillips
2002-01-07 23:48   ` Jeff Garzik
2002-01-08  0:15     ` Andreas Dilger
2002-01-08  0:17       ` Jeff Garzik
2002-01-08  3:28     ` Daniel Phillips
2002-01-07 16:10 ` Daniel Phillips
2002-01-07 19:38   ` Alexander Viro
2002-01-07 21:37     ` Jeff Garzik
2002-01-07 23:28     ` [PATCH 7/7 v2] " Jeff Garzik
2002-01-07 23:49       ` [Ext2-devel] " Andreas Dilger
2002-01-07 23:52         ` Jeff Garzik
2002-01-07 21:32   ` Jeff Garzik
2002-01-07 21:49     ` Arnaldo Carvalho de Melo
2002-01-07 21:58       ` Jeff Garzik
2002-01-07 23:46   ` Jeff Garzik
2002-01-08  0:17     ` [Ext2-devel] " Andreas Dilger

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=E16NbYF-0001Qq-00@starship.berlin \
    --to=phillips@bonn-fries.net \
    --cc=ext2-devel@lists.sourceforge.net \
    --cc=jgarzik@mandrakesoft.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    --cc=viro@math.psu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®