linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


  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).