From: "J. Bruce Fields" <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
To: Shirish Pargaonkar
<shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] cifs: Allow nfsd over cifs
Date: Tue, 1 Mar 2011 14:21:03 -0500 [thread overview]
Message-ID: <20110301192102.GD20599@fieldses.org> (raw)
In-Reply-To: <AANLkTikNH0ujA-qram1=1JEqJ7DH6dLRR723YZgJde1+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Tue, Mar 01, 2011 at 12:30:12PM -0600, Shirish Pargaonkar wrote:
> On Tue, Mar 1, 2011 at 12:07 PM, J. Bruce Fields <bfields-uC3wQj2KruMpug/h7KTFAQ@public.gmane.orgg> wrote:
> > On Mon, Feb 28, 2011 at 10:28:08PM -0500, J. Bruce Fields wrote:
> >> On Mon, Feb 28, 2011 at 08:33:08PM -0600, Steve French wrote:
> >> > On Mon, Feb 28, 2011 at 5:59 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
> >> > > On Mon, Feb 28, 2011 at 05:52:09PM -0600, Steve French wrote:
> >> > >> On Mon, Feb 28, 2011 at 5:42 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
> >> > >> > OK. Then as things stand we're stuck returning ESTALE to the client
> >> > >> > unless we happen to have the inode they're looking for in our cache?
> >> > >>
> >> > >> Yes - that seems right and consistent with what I remember other file
> >> > >> systems doing.
> >> > >
> >> > > No, other filesystems are able to look up the file on disk by inode
> >> > > number (or by whatever identifier they use in the filehandle). They
> >> > > don't depend on already having the inode in core.
> >> >
> >> > Grepping for ESTALE looks like there are dozens of places in various
> >> > fs where ESTALE can get returned ...
> >>
> >> Certainly true.
> >>
> >> But they do have to be able to look up any inode, regardless of whether
> >> it is currently in cache.
> >>
> >> Otherwise applications on the client would see ESTALE after any server
> >> reboot, or any time an inode was forced out of cache (for whatever
> >> reason).
> >>
> >> That would be quite painful.
> >
> > So if my understanding of the cifs behavior here is correct, then I
> > don't believe nfs exports of cifs will be usable.
> >
> > In the long term perhaps it could be possible with changes to one or the
> > other of the protocols: for example, perhaps future versions of the nfs
> > protocol could be made less reliant on long-lived filehandles. But that
> > would be a major change.
> >
> > --b.
> >
>
> Bruce, I am not getting a picture of how NFS server would return ESTALE
> error to nfs client and then on to the app for a filehandle fragment
> that happens
> to be coded as uniqueid by cifs during encode_fh if inode with that uniqueid
> does not happen to exist in vfs cache on the server box.
>
> When nfs passes down filehandle fragment (uniqueid) to cifs in fh_to_dentry,
> if the inode does not exist in cache, cifs will pick a new inode and copy this
> uniqueid as inode number.
Oh, OK, that's not what I'd imagined.
> Not sure what happens next for nfs server to
> sense a stale file(handle fragment).
What I'd expect to happen next:
- d_obtain_alias will find a dentry pointing at this inode.
(But, note: this dentry does *not* necessarily tell us anything
about any name of the file. In many cases it will be a
DCACHE_DISCONNECTED dentry with name "" and no parent.)
- at some later point, nfsd will attempt to open that dentry and
do reads or writes.
If the cifs/smb protocols give you some way to open or lookup by
uniqueid, then you can do step 2. I understood Steve to say that they
don't. In that case, you're stuck. But you're right, the failure may
be something other than returning ESTALE.
--b.
next prev parent reply other threads:[~2011-03-01 19:21 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-28 21:52 [PATCH] cifs: Allow nfsd over cifs shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1298929961-5541-1-git-send-email-shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-02-28 22:49 ` J. Bruce Fields
[not found] ` <20110228224957.GB14237-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-02-28 22:58 ` Steve French
[not found] ` <AANLkTimDd-m388VJTC1zJtf3Q7LkFcsvNuwcY6vRwt7K-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-28 23:42 ` J. Bruce Fields
[not found] ` <20110228234225.GC14237-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-02-28 23:52 ` Steve French
[not found] ` <AANLkTikeSEYOs_nzno40eM0ZSrStMqcziPzWGRViT5M--JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-28 23:59 ` J. Bruce Fields
[not found] ` <20110228235910.GD14237-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-01 2:33 ` Steve French
[not found] ` <AANLkTinFwcBMmPpn0_30Bjaa+0ipoJ6qrM=u1TGQ+Q8g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-01 3:28 ` J. Bruce Fields
[not found] ` <20110301032808.GA17725-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-01 18:07 ` J. Bruce Fields
[not found] ` <20110301180700.GC20599-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-01 18:30 ` Shirish Pargaonkar
[not found] ` <AANLkTikNH0ujA-qram1=1JEqJ7DH6dLRR723YZgJde1+-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-01 19:21 ` J. Bruce Fields [this message]
[not found] ` <20110301192102.GD20599-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-01 20:09 ` Jeff Layton
[not found] ` <20110301150949.6ca5b880-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2011-03-01 20:11 ` Steve French
[not found] ` <AANLkTikc2GAe1+jRyuJGEJ8i5EBtoO-dayocL2yATMWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-01 20:31 ` Jeff Layton
[not found] ` <20110301153111.6673e191-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2011-03-01 20:37 ` Steve French
2011-03-01 20:34 ` J. Bruce Fields
[not found] ` <20110301203445.GE20599-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-01 20:38 ` Steve French
[not found] ` <AANLkTikaGd6EzNBWkYrJM3upP4fnBUx4p7c_29cLReLX-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-01 20:48 ` J. Bruce Fields
[not found] ` <20110301204807.GF20599-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-16 15:30 ` Jeff Layton
[not found] ` <4D80DAA5.6030106@likewise.com>
[not found] ` <AANLkTik9hN2jVW6+=LnwY1xaCLqGBW6-BeG-=dmZgCnr@mail.gmail.com>
[not found] ` <AANLkTikA6akj7GDM_H7ndbMvPc6rnRtZ_i_zEHMrG31H@mail.gmail.com>
[not found] ` <AANLkTinbOJRmrudrCyQ9zHTSUr69RV-1NTyoc1NOFAjz@mail.gmail.com>
[not found] ` <AANLkTincOKZ5YjN9cKYaTByu7DST7bzQvO5XESsStTDh@mail.gmail.com>
[not found] ` <AANLkTi=2EpL2F=+t0eDuGv_OrkxtgNxxu02_iv+ashbU@mail.gmail.com>
[not found] ` <AANLkTimLAg74dVMZqOrZ60CYe_94Q1ihwWGq7DaDTVyG@mail.gmail.com>
[not found] ` <AANLkTin+NAGqF5EJjVJZ1tW62tQcjmJLP8njfGLqsFZQ@mail.gmail.com>
[not found] ` <AANLkTinUiU47-621kVwignvL0Dud1nTYc1RhnHMKQQz2@mail.gmail.com>
[not found] ` <AANLkTi=St7RiwyEy0Fq-P16cfSTEvN0-BEgWC4NOsujx@mail.gmail.com>
[not found] ` <AANLkTik5HcN=Lz70fGD1wN6GkZkQy4BWa7Ovz4RNghA0@mail.gmail.com>
[not found] ` <AANLkTimYByiDRRjwrcNM+HKK6t_hgoS_oWn3hXVbzkF+@mail.gmail.com>
[not found] ` <AANLkTi=0aG4iOtJPxe2zZnx9hW2DUGGArnR6s_jioZ=E@mail.gmail.com>
[not found] ` <AANLkTimsD73JRzhFTycYKZBcgL9q3VjA1Dpj8judwWFE@mail.gmail.com>
[not found] ` <AANLkTikcSyXoqbBKG+0iyX1zN=TfYQ5dTH9BTSoLg-42@mail.gmail.com>
[not found] ` <AANLkTikcSyXoqbBKG+0iyX1zN=TfYQ5dTH9BTSoLg-42-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-23 17:57 ` Steve French
2011-03-01 5:17 ` Shirish Pargaonkar
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=20110301192102.GD20599@fieldses.org \
--to=bfields-uc3wqj2krung9huczpvpmw@public.gmane.org \
--cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.