From: David Chow <davidchow@shaolinmicro.com>
To: Neil Brown <neilb@cse.unsw.edu.au>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: i_generation consistency
Date: Thu, 28 Nov 2002 14:28:18 +0800 [thread overview]
Message-ID: <3DE5B782.304@shaolinmicro.com> (raw)
In-Reply-To: 15843.28685.348221.279411@notabene.cse.unsw.edu.au
>>I am writing a file system and having problem implementing the
>>i_generation of the inode. Should the i_generation be persistent in the
>>disk? Or it has to be changed every time the dcache shrinks or reload
>>after read_inode()? Should I check the i_generation in the fh_dentry()
>>ops and include it in file handle or leave it to the NFS clients and
>>nfsd and I should forget about implementing i_generation in file
>>handles. Can you please clarify? Thanks.
>>
>>
>
>The core requirement is that dentry_to_fh must provide a
>filehandle that fh_to_dentry can
> 1/ recoginise and find, even if it isn't in cache
> 2/ check that the inode that was found is still valid. i.e.
> that it hasn't been re-used after the original was deleted.
>
>This is sometimes done using a combination of
>inode number, that can be used to locate a file, but that can be
>reused after a file is removed, and a generation number,
>that is stored in the inode and has a different value each time the
>inode is reused (though this is not the only way to do it).
>
>In this case, the generation number must be stored on stable
>storage, and should be checked in fh_to_dentry.
>
>Hope this helps.
>
>NeilBrown
>
Thanks, it seems some file system change the i_generation each time the
inode is read ... I don't think this is a good idea because the server
can shrink the dcache and got the inode flushed, while the client keep
that i_generation in its dcache. The next time the client requests that
inode using the old i_generation and find it is stale. That means the
lifetime of an i_generation is the same as the dcache which is not
persistent. But from what you say is that the i_generation should be
kept persistent until it is reused after a remove or delete, is my
understanding right?
regards,
David
next prev parent reply other threads:[~2002-11-28 6:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-26 10:11 i_generation consistency David Chow
2002-11-26 12:58 ` Neil Brown
2002-11-28 6:28 ` David Chow [this message]
[not found] ` <3DE5B746.1040300@shaolinmicro.com>
2002-12-01 23:00 ` Neil Brown
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=3DE5B782.304@shaolinmicro.com \
--to=davidchow@shaolinmicro.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=neilb@cse.unsw.edu.au \
/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).