diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2009-08-27 18:51:07 +0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2009-08-27 18:51:07 +0400 |
commit | 8d8291ae93ecb4a246e87e452d55cca412373300 (patch) | |
tree | ccf67c703fb9f9b2e4ee945f3221b8b20c1804db /fs/gfs2/incore.h | |
parent | 307cf6e63cfa5025589ea1a06db44439a43819ff (diff) | |
download | linux-8d8291ae93ecb4a246e87e452d55cca412373300.tar.xz |
GFS2: Remove no_formal_ino generating code
The inum structure used throughout GFS2 has two fields. One
no_addr is the disk block number of the inode in question and
is used everywhere as the inode number. The other, no_formal_ino,
is used only as the generation number for NFS.
Historically the no_formal_ino field was set using a complicated
system of one global and one per-node file containing inode numbers
in order to ensure that each no_formal_ino was unique. Also this
code made no provision for what would happen when eventually the
(64 bit) numbers ran out. Now I know that is pretty unlikely to
happen given the large space of numbers, but it is possible
nevertheless.
The only guarantee required for no_formal_ino is that, for any
single inode, the same number doesn't get reused too quickly.
We already have a generation number which is kept in the inode
and initialised from a counter in the resource group (almost
no overhead, since we have to touch the resource group anyway
in order to allocate an inode in the first place). Aside from
ensuring that we never use the value 0 in the no_formal_ino
field, we can use that counter directly.
As a result of that change, we lose about 200 lines of code and
also gain about 10 creates/sec on the postmark benchmark (on
my test machine).
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/incore.h')
-rw-r--r-- | fs/gfs2/incore.h | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h index 1d11e6e0373e..52436abc3b4d 100644 --- a/fs/gfs2/incore.h +++ b/fs/gfs2/incore.h @@ -548,18 +548,12 @@ struct gfs2_sbd { struct dentry *sd_root_dir; struct inode *sd_jindex; - struct inode *sd_inum_inode; struct inode *sd_statfs_inode; - struct inode *sd_ir_inode; struct inode *sd_sc_inode; struct inode *sd_qc_inode; struct inode *sd_rindex; struct inode *sd_quota_inode; - /* Inum stuff */ - - struct mutex sd_inum_mutex; - /* StatFS stuff */ spinlock_t sd_statfs_spin; @@ -587,7 +581,6 @@ struct gfs2_sbd { struct gfs2_holder sd_journal_gh; struct gfs2_holder sd_jinode_gh; - struct gfs2_holder sd_ir_gh; struct gfs2_holder sd_sc_gh; struct gfs2_holder sd_qc_gh; |