From: Timothy Shimmin <tes@sgi.com>
To: NeilBrown <neilb@suse.de>
Cc: "Josef 'Jeff' Sipek"
<jeffpc-PM1Ls4bqFqUFEYicpp4bmg@public.gmane.org>,
"J. Bruce Fields" <bfields@fieldses.org>,
xfs@oss.sgi.com,
Adam Schrotenboer <adam-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>,
Jesper Juhl <jesper.juhl@gmail.com>,
Trond Myklebust <trond.myklebust@netapp.com>,
lkml@vger.kernel.org, linux-nfs@vger.kernel.org,
Thomas Daniel <tdaniel-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>,
Frederic Revenu <frevenu-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>,
Jeff Doan <jdoan-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [opensuse] nfs_update_inode: inode X mode changed, Y to Z
Date: Wed, 26 Mar 2008 14:27:26 +1100 [thread overview]
Message-ID: <47E9C29E.6090703@sgi.com> (raw)
In-Reply-To: <34178.192.168.1.70.1206481102.squirrel-eq65iwfR9nKIECXXMXunQA@public.gmane.org>
Hi Neil,
NeilBrown wrote:
> On Wed, March 26, 2008 8:24 am, Josef 'Jeff' Sipek wrote:
>
>> Unless you specify the "ikeep" mount option, XFS will remove unused inode
>> clusters. The newly freed blocks can be then used to store data or
>> possibly
>> a new inode cluster. If the blocks get reused for inodes, you'll end up
>> with inodes whose generation numbers regressed. (inode number = f(block
>> number))
>>
>> Using the "ikeep" mount option causes to _never_ free empty inode
>> clusters.
>> This means that if you create many files and then unlink them, you'll end
>> up
>> with many unused inodes that are still allocated (and taking up disk
>> space)
>> but free to be used by the next creat(2)/mkdir(2)/etc..
>>
>> This "problem" is inherent to any file system which dynamically allocates
>> inodes.
>
> Yes, I understand all that.
>
> However you still need to do something about the generation number. It
> must be set to something.
>
> When you allocate an inode that doesn't currently exist on the device,
> you obviously cannot increment the old value and use that.
> However you can do a lot better than always using 0.
>
Yes, this is a known problem.
We came across it in about August last year I believe in the context of
DMF as it wants to keep persistent file handles with gen#s in them:
SGI bug:
969192: Default mount option "noikeep" makes the inode generation number non-persistent
I vaguely remember at the time that a number of different schemes were
tossed around but in the end we just turned off the ikeep
for DMAPI mounted filesystems.
I thought we had a bug open to do a real fix but can't see
it at the moment. Will look into it and discuss with our group.
Cheers,
--Tim
prev parent reply other threads:[~2008-03-26 3:27 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-05 20:52 [opensuse] nfs_update_inode: inode X mode changed, Y to Z Adam Schrotenboer
[not found] ` <47CF0829.4020502-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>
2008-03-05 21:27 ` Trond Myklebust
[not found] ` <1204752463.5035.34.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-03-05 21:49 ` Adam Schrotenboer
2008-03-06 3:12 ` Neil Brown
[not found] ` <18383.24847.381754.517731-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2008-03-06 3:19 ` Adam Schrotenboer
2008-03-07 4:38 ` Neil Brown
[not found] ` <18384.50909.866848.966192-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2008-03-07 5:55 ` Adam Schrotenboer
[not found] ` <47D0D8B5.6050403-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>
2008-03-12 17:55 ` Adam Schrotenboer
[not found] ` <47D818FB.8080302-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>
2008-03-12 18:08 ` Trond Myklebust
[not found] ` <1205345284.9419.8.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-03-12 18:16 ` Adam Schrotenboer
2008-03-12 22:13 ` Jesper Juhl
[not found] ` <9a8748490803121513w285cd45rb6b26a3d842cac1b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-03-12 22:15 ` J. Bruce Fields
2008-03-12 22:16 ` Jesper Juhl
2008-03-14 4:58 ` Neil Brown
[not found] ` <18394.1501.991087.80264-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2008-03-14 21:21 ` Jesper Juhl
2008-03-14 21:36 ` Adam Schrotenboer
[not found] ` <47DAEFD0.9020407-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>
2008-03-25 16:59 ` Adam Schrotenboer
[not found] ` <47E92F8E.7030504-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org>
2008-03-25 19:09 ` J. Bruce Fields
2008-03-25 20:32 ` NeilBrown
[not found] ` <32953.192.168.1.70.1206477121.squirrel-eq65iwfR9nKIECXXMXunQA@public.gmane.org>
2008-03-25 21:24 ` Josef 'Jeff' Sipek
[not found] ` <20080325212425.GA20257-PM1Ls4bqFqUFEYicpp4bmg@public.gmane.org>
2008-03-25 21:38 ` NeilBrown
[not found] ` <34178.192.168.1.70.1206481102.squirrel-eq65iwfR9nKIECXXMXunQA@public.gmane.org>
2008-03-25 22:13 ` Josef 'Jeff' Sipek
[not found] ` <20080325221321.GC20257-PM1Ls4bqFqUFEYicpp4bmg@public.gmane.org>
2008-03-25 23:09 ` NeilBrown
2008-03-26 3:37 ` David Chinner
2008-03-26 5:02 ` David Chinner
2008-04-17 19:37 ` Adam Schrotenboer
2008-03-26 3:27 ` Timothy Shimmin [this message]
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=47E9C29E.6090703@sgi.com \
--to=tes@sgi.com \
--cc=adam-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org \
--cc=bfields@fieldses.org \
--cc=frevenu-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org \
--cc=jdoan-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org \
--cc=jeffpc-PM1Ls4bqFqUFEYicpp4bmg@public.gmane.org \
--cc=jesper.juhl@gmail.com \
--cc=linux-nfs@vger.kernel.org \
--cc=lkml@vger.kernel.org \
--cc=neilb@suse.de \
--cc=tdaniel-PMR2DCmmWYEAvxtiuMwx3w@public.gmane.org \
--cc=trond.myklebust@netapp.com \
--cc=xfs@oss.sgi.com \
/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