linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Namjae Jeon <linkinjeon@gmail.com>,
	"Steven J. Magnani" <steve@digidescorp.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	Namjae Jeon <namjae.jeon@samsung.com>,
	Ravishankar N <ravi.n1@samsung.com>,
	Amit Sahrawat <a.sahrawat@samsung.com>
Subject: Re: [PATCH v2 1/5] fat: allocate persistent inode numbers
Date: Thu, 13 Sep 2012 02:03:51 +0900	[thread overview]
Message-ID: <87vcfjfa14.fsf@devron.myhome.or.jp> (raw)
In-Reply-To: <20120912143227.GE3009@fieldses.org> (J. Bruce Fields's message of "Wed, 12 Sep 2012 10:32:27 -0400")

"J. Bruce Fields" <bfields@fieldses.org> writes:

>> > Supposing, the server/client state is after cold boot, and client try to
>> > rename at first without any cache on client/server.
>> >
>> > Even if this state, does the server return ESTALE? If it doesn't return
>> > ESTALE, I can't understand why it is really unfixable.
>> Hi OGAWA.
>> Server will not return ESTALE in this case. because the client does
>> not have any information for files yet.
>
> It does if the client mounted before the server rebooted.  NFS is
> designed so that servers can reboot without causing clients to fail.
> (Applications will just see a delay during the reboot.)
>
> It probably isn't possible to this work in the case of fat.
>
> But from fat's point of view there probably isn't much difference
> between a filehandle lookup after a reboot and a filehandle lookup after
> the inode's gone from cache.

This is talking about to retry by client side, not server side solution.
What happens if client retry after got ESTALE? (Yes, this would not be
the solution for all NFS clients. But, I guess this solution can be for
linux NFS client.)

> I really don't see what you can do to help here.  Won't anything that
> allows looking up an uncached inode by filehandle also risk finding the
> wrong file?

On other view (as server side solution), we are thinking there is
possible to make the stable filehandle on FAT if we disabled some
operations (e.g. rename(), unlink()) which change inode location in FAT.

Yes, it would be stable, but supporting limited operations.

This is server side solution, and we comparing it with client solution.

>> > If it returns ESTALE, why does it return? I'm assuming the previous code
>> > path is the cached FH path.
>> The main point for observation is the file handle-which is used for
>> all the NFS operation.
>> So for all the NFS operation(read/write....) which makes use of the
>> NFS file handle in between if there is a change in inode number
>> It will result in ESTALE.
>> Changing inode number on rename happened at NFS server by inode cache
>> eviction with memory pressure.
>> 
>> lookupcache is used at NFS client to reduce number of LOOKUP operations.
>> But , we can still get ESTALE if inode number at NFS Server change
>> after LOOKUP, although lookupcache is disable.
>> 
>> LOOKUP return NFS FH->[inode number changed at NFS Server] ->
>> But we still use old NFS FH returned from LOOKUP for any file
>> operation(write,read,etc..)
>> -> ESTALE will be returned.

Yes.  And I'm expecting as client side solution,

-> ESTALE will be returned -> discard old FH -> restart from LOOKUP ->
make cached inode -> use returned new FH.

Yeah, I know this is unstable (there is no perfect solution for now),
but if this works, this doesn't limit any operations.

We would want to compare client solution (-mm) and server solution
(stable ino). Or I'd like to know which my knowledges/understanding are
wrong here.
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

  reply	other threads:[~2012-09-12 17:04 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-04 15:57 [PATCH v2 1/5] fat: allocate persistent inode numbers Namjae Jeon
2012-09-04 16:17 ` Al Viro
2012-09-05 14:08   ` Namjae Jeon
2012-09-05 14:56     ` OGAWA Hirofumi
2012-09-06  6:46       ` Namjae Jeon
2012-09-06 12:19         ` OGAWA Hirofumi
2012-09-06 13:39           ` Namjae Jeon
2012-09-07  7:01             ` Namjae Jeon
2012-09-07 12:15               ` Steven J. Magnani
2012-09-09  9:32                 ` OGAWA Hirofumi
2012-09-09 11:29                   ` OGAWA Hirofumi
2012-09-10 12:03                     ` Namjae Jeon
2012-09-10 14:00                       ` OGAWA Hirofumi
2012-09-11 12:00                         ` Namjae Jeon
2012-09-11 12:31                           ` OGAWA Hirofumi
2012-09-11 15:13                             ` Namjae Jeon
2012-09-11 15:47                               ` OGAWA Hirofumi
2012-09-12 14:12                                 ` Namjae Jeon
2012-09-12 14:32                                   ` J. Bruce Fields
2012-09-12 17:03                                     ` OGAWA Hirofumi [this message]
2012-09-12 17:11                                       ` J. Bruce Fields
2012-09-12 17:38                                         ` OGAWA Hirofumi
2012-09-12 17:45                                           ` J. Bruce Fields
2012-09-12 18:49                                             ` OGAWA Hirofumi
2012-09-13  8:11                                               ` Namjae Jeon
2012-09-13  8:33                                                 ` OGAWA Hirofumi
2012-09-13 11:20                                                   ` J. Bruce Fields
2012-09-13 12:17                                                     ` OGAWA Hirofumi
2012-09-13 14:24                                                       ` Namjae Jeon
2012-09-13 14:46                                                         ` J. Bruce Fields
2012-09-13 15:34                                                           ` OGAWA Hirofumi
2012-09-14  8:51                                                             ` Namjae Jeon
2012-09-10 12:28                   ` Steven J. Magnani

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=87vcfjfa14.fsf@devron.myhome.or.jp \
    --to=hirofumi@mail.parknet.co.jp \
    --cc=a.sahrawat@samsung.com \
    --cc=akpm@linux-foundation.org \
    --cc=bfields@fieldses.org \
    --cc=linkinjeon@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namjae.jeon@samsung.com \
    --cc=ravi.n1@samsung.com \
    --cc=steve@digidescorp.com \
    --cc=viro@zeniv.linux.org.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;
as well as URLs for NNTP newsgroup(s).