All of lore.kernel.org
 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 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.