All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Mike Marshall <hubcap@omnibond.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: updated orangefs tree at kernel.org
Date: Sat, 10 Oct 2015 03:31:57 +0100	[thread overview]
Message-ID: <20151010023157.GE22011@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20151008230333.GX22011@ZenIV.linux.org.uk>

On Fri, Oct 09, 2015 at 12:03:33AM +0100, Al Viro wrote:

> What I have in mind is something like (*ABSOLUTELY* *UNTESTED*)
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git orangefs-untested

OK, I've thrown several more fixes into that branch, but that's the
low-hanging fruit.  The really interesting questions I see right now
are:
	* it needs some form of lseek() for directories - currently absent,
not even rewind to the beginning.  Userland won't be happy
	* races around the umount - I don't understand the protocol well
enough to fix those, but this area looks fishy as hell
	* racing copy_attributes_to_inode() and the way it mangles the
metadata of live inodes.  ->i_mode updates in particular are seriously
broken, so are updates of symlink bodies, etc.
	* truncation of long symlinks and the lack of NUL-termination in
there.
	* atrocious userland API for downcalls (response to everything
other than readdir must come in 4-element iovec array passed to writev(),
no matter where the segment boundaries are; response to readdir must come
in 5-element iovec array passed to writev(), the boundaries among the
first 4 segments do not matter, the 5th segment covering exactly the payload).
IMO that needs to be fixed before we merge the damn thing - it's really too
ugly to live.  I would really like to hear from somebody familiar with the
userland side - what responses does it actually submit?  The validation
kernel-side is basically inexistent, and while I suspect that we could handle
the actually sent responses much cleaner, the full set of everything that
would be accepted by the current code is a bloody mess and would be much
harder to handle in a clean way.  What's more, the response layouts are
messy, and if it is still possible to change that API, we'd be much better off
if we cleaned them up.
	* for some reason the lookup request tells the server whether there
was LOOKUP_FOLLOW in flags.  This is really odd - no other filesystem cares
about that bit and until now its presence in ->lookup() flags had been
basically at convenience of fs/namei.c; it doesn't match anything useful
and I'm very surprised by seeing orangefs pass it to server.  LOOKUP_FOLLOW is
almost certainly a wrong approximation to whatever orangefs is trying to
achieve.  What is it about?

  parent reply	other threads:[~2015-10-10  2:32 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-07 20:07 updated orangefs tree at kernel.org Mike Marshall
2015-10-08 21:07 ` Al Viro
2015-10-08 23:03   ` Al Viro
2015-10-09  3:41     ` Al Viro
2015-10-09  6:13       ` Al Viro
2015-10-09 19:22       ` Al Viro
2015-10-10  2:31     ` Al Viro [this message]
2015-10-10 20:23       ` Al Viro
2015-10-10 23:10       ` orangefs: NAK until the ABI is documented (was Re: updated orangefs tree at kernel.org) Al Viro
2015-10-12 16:20         ` Mike Marshall
2015-10-12 19:16           ` Al Viro
2015-10-13 17:46             ` Mike Marshall
2015-10-13 23:34               ` Al Viro
  -- strict thread matches above, loose matches on Subject: below --
2015-11-16 20:01 updated orangefs tree at kernel.org Mike Marshall

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=20151010023157.GE22011@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=hubcap@omnibond.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /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.