public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Phillip Hellewell <phillip@hellewell.homeip.net>,
	Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 0/13: eCryptfs] eCryptfs Patch Set
Date: Fri, 7 Jul 2006 12:54:22 +0100	[thread overview]
Message-ID: <20060707115422.GA4705@infradead.org> (raw)
In-Reply-To: <20060520095740.GA12237@infradead.org>

On Sat, May 20, 2006 at 10:57:40AM +0100, Christoph Hellwig wrote:
> I gave the code in -mm a quick look, and it still needs a lot of work.

looking over the code again:

>  - please kill ECRYPTFS_SET_FLAG, ECRYPTFS_CLEAR_FLAG and ECRYPTFS_CHECK_FLAG
>    and just opencode them, it'll make the code a whole lot more readable

these are still there..

>  - please make sure touch_atime goes down to ->setattr for atime updates,
>    that way you don't need all that mess in your read/write.  and in -mm
>    those routines need update for vectored and aio support

you don't seem to have updated the common code for this yet.

>  - NEVER EVER do things like copying locks_delete_block and
>    posix_lock_file_wait (as ecryptfs_posix_lock and based on a previous
>    version) to you code.  It will get stale and create a maintaince nightmare.
>    talk with the subsystem maintainers on how to make the core functionality
>    accesible to you.
>  - similarly ecryptfs_setlk is totally non-acceptable.  find a way with the
>    maintainer to reuse things from fcntl_setlk with a common helper

dito

>  - copying things like lock_parent, unlock_parent and unlock_dir


still there.  sorry, but there's zero changes to get things merged that
opencode

> 
>  - please split all the generic stackable filesystem passthorugh routines
>    into a separated stackfs layer, in a few files in fs/stackfs/ that
>    you depend on.  They'll get _GPL exported to all possible stackable
>    filesystem.  They'll need their own store underlying object helpers,
>    but that can be made to work by embedding the generic stackfs data
>    as first thing in the ecryptfs object.
> 
>
>


More comments:

 - what protects accessing d_parent in lock_parent / unlock_parent?
 - no need to cast the return value of kmem_cache_alloc, it's void *
 - any reason to use the SLAB_* flags instead of GFP_?  I'm a bit surprised
   SLAB_* still exists at all..

 - follow_link handling is wrong.  you need to call the underlying
   ->follow_link in your follow_link implementation and you need to keep
   a separate nameidata for it

 - please kill that ugly ecryptfs_allocated_caches hack and do normal
   goto based unwinding on failure

 - using iget with the lower filesystems i_ino does not work.  There are
   various filesystems were i_ino does not uniqueuely identify an inode.
   You will probably need your own sequence numbers.  Also please don't
   use iget in new code but always the iget_locked variant.

And a more general issue with implementing stackable filesystems:

  I think it's probably much better to not stack ontop of a part of the
  existing namespace but rather let ecryptfs mount the underlying filesystem
  internally using vfs_kern_mount.  This gets out of the way of possible
  lock order problems when doing namespace operation involving both the
  stacked and underlying filesystem aswell as allowing using a stackable
  filesystem as the root filesystem.


  parent reply	other threads:[~2006-07-07 11:54 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-13  3:37 [PATCH 0/13: eCryptfs] eCryptfs Patch Set Phillip Hellewell
2006-05-13  3:40 ` [PATCH 1/13: eCryptfs] fs/Makefile and fs/Kconfig Phillip Hellewell
2006-05-13  8:51   ` Jan-Benedict Glaw
2006-05-13  3:41 ` [PATCH 2/13: eCryptfs] Documentation Phillip Hellewell
2006-05-13  3:42 ` [PATCH 3/13: eCryptfs] Makefile Phillip Hellewell
2006-05-13  3:42 ` [PATCH 4/13: eCryptfs] Main module functions Phillip Hellewell
2006-05-13  3:43 ` [PATCH 5/13: eCryptfs] Header declarations Phillip Hellewell
2006-05-13  3:44 ` [PATCH 6/13: eCryptfs] Superblock operations Phillip Hellewell
2006-05-13  3:45 ` [PATCH 7/13: eCryptfs] Dentry operations Phillip Hellewell
2006-05-13  3:45 ` [PATCH 8/13: eCryptfs] File operations Phillip Hellewell
2006-05-13  3:46 ` [PATCH 9/13: eCryptfs] Inode operations Phillip Hellewell
2006-05-13  3:47 ` [PATCH 10/13: eCryptfs] Mmap operations Phillip Hellewell
2006-06-28 14:16   ` Pekka Enberg
2006-06-28 15:02     ` Michael Halcrow
2006-05-13  3:47 ` [PATCH 11/13: eCryptfs] Keystore Phillip Hellewell
2006-05-13  3:48 ` [PATCH 12/13: eCryptfs] Crypto functions Phillip Hellewell
2006-05-13  3:49 ` [PATCH 13/13: eCryptfs] Debug functions Phillip Hellewell
2006-05-13  4:21 ` [PATCH 0/13: eCryptfs] eCryptfs Patch Set Nick Piggin
2006-05-13 16:21   ` Michael Thompson
2006-05-14  2:59     ` Nick Piggin
2006-05-14  3:13       ` Andrew Morton
2006-05-14  3:26         ` Nick Piggin
2006-05-14  3:43           ` Michael Halcrow
2006-05-14  3:54             ` Greg KH
2006-05-15 10:17         ` David Howells
2006-05-15 10:59           ` Andrew Morton
2006-05-20  9:57 ` Christoph Hellwig
2006-06-01 20:47   ` Michael Halcrow
2006-07-07 10:01     ` Christoph Hellwig
2006-07-07 11:54   ` Christoph Hellwig [this message]
2006-07-07 12:23     ` Pekka Enberg
2006-07-07 17:22     ` David Quigley
2006-07-08 17:21       ` Christoph Hellwig
2006-07-08 21:22         ` Erez Zadok

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=20060707115422.GA4705@infradead.org \
    --to=hch@infradead.org \
    --cc=akpm@osdl.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=phillip@hellewell.homeip.net \
    /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