mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Peter Braam <braam@clusterfs.com>
Cc: viro@parcelfarce.linux.theplanet.co.uk,
	Linux FSdevel <linux-fsdevel@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	NFS maillist <nfs@lists.sourceforge.net>,
	lustre-devel@lists.sourceforge.net
Subject: intent patches
Date: Mon, 26 May 2003 00:31:46 +0200	[thread overview]
Message-ID: <16081.17490.889937.791357@charged.uio.no> (raw)
In-Reply-To: <20030525074243.GF18405@localhost.localdomain>

>>>>> " " == Peter Braam <braam@clusterfs.com> writes:

     > We _do_ have resources to sort it all out very agressively in
     > the next few weeks.

Good. Let's do that...

     > We currently use intents for two methods:
     > - getattr
     > - open
     > For other methods, we would like the intents also, but they did
     > not solve all our woes.  We may have overlooked one or two,
     > like permission.

Permission provides a pretty major source of optimization as far as
NFS is concerned: we can ignore it for all operations *except* open(),
and cached lookup().

     > We introduced lookup2 and d_revalidate2 to avoid changing all
     > file systems and in 2.5 we give them a namei data parameter.

Is this really desirable? It makes maintenance easy when you are
making add-on patches for the kernel, but IMHO it otherwise just makes
for a confusing interface.

     > We would like to pass a pointer to nameidata to:

     > - open (file method)
     > - create directory (inode method)
     > - lookup (inode method)
     > - revalidate (dentry method)

All those are good as far as I'm concerned.

     > - revalidate (inode method)

That's no longer in 2.5.x. Do you perhaps mean the new getattr()?

     > and perhaps also to mkdir, rmdir, unlink, rename, mknod,
     > setattr.

setattr() may help for NFSv4 where we can do open(O_TRUNC) atomically
on the server, and could optimize away the truncation.

The other ops aren't really prime candidates for optimization,
although we could possibly plonk the lookup+op into a single RPC call
by means of the COMPOUND call (again NFSv4 only).

     >   We have not done so yet, and can work aroud this by adding a
     >   field
     >      struct lookup_intent *d_it
     > in a dentry. This is not elegant, and the protection of this
     > field is delicate, but avoids large scale api changes.

Hmmm...

     > Trond changes all callers instead of adding lookup2 (better
     > long term, very invasive for pre-2.6)

We could mitigate the effects by making the nameidata field an
optional one. Of course, that would make it harder to add support for
credentials.

     > he has vfsintent point to nameidata and inside "opendata" and
     > we have the exact opposite...

Swapping will fail to offend any deeply held religious beliefs of
mine. No problems there...

     > We do all methods.

Yep. As you can see I've looked only at those methods that are known
to have the largest impact w.r.t. the NFS client.

Cheers,
  Trond

      reply	other threads:[~2003-05-25 22:18 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-25  7:42 Peter Braam
2003-05-25 22:31 ` Trond Myklebust [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=16081.17490.889937.791357@charged.uio.no \
    --to=trond.myklebust@fys.uio.no \
    --cc=braam@clusterfs.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lustre-devel@lists.sourceforge.net \
    --cc=nfs@lists.sourceforge.net \
    --cc=viro@parcelfarce.linux.theplanet.co.uk \
    /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®