linux/fs/gfs2
Steven Whitehouse 8d8291ae93 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>
2009-08-27 15:51:07 +01:00
..
acl.c GFS2: Rename eattr.[ch] as xattr.[ch] 2009-08-26 18:51:04 +01:00
acl.h [GFS2] Remove gfs2_check_acl() 2006-11-30 10:37:32 -05:00
aops.c GFS2: keep statfs info in sync on grows 2009-07-30 10:52:33 +01:00
bmap.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
bmap.h GFS2: Streamline alloc calculations for writes 2009-01-05 07:39:17 +00:00
dentry.c GFS2: free disk inode which is deleted by remote node -V2 2009-08-18 10:29:39 +01:00
dir.c GFS2: Improve resource group error handling 2009-05-20 10:48:47 +01:00
dir.h GFS2: Fix bug in gfs2_lock_fs_check_clean() 2009-01-05 07:39:11 +00:00
export.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
file.c GFS2: Clean up of extended attribute support 2009-08-26 18:41:32 +01:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c GFS2: remove dcache entries for remote deleted inodes 2009-07-30 11:01:03 +01:00
glock.h GFS2: remove dcache entries for remote deleted inodes 2009-07-30 11:01:03 +01:00
glops.c GFS2: remove dcache entries for remote deleted inodes 2009-07-30 11:01:03 +01:00
glops.h GFS2: Add a "demote a glock" interface to sysfs 2009-03-24 11:21:22 +00:00
incore.h GFS2: Remove no_formal_ino generating code 2009-08-27 15:51:07 +01:00
inode.c GFS2: Remove no_formal_ino generating code 2009-08-27 15:51:07 +01:00
inode.h GFS2: Move gfs2_unlink_ok into ops_inode.c 2009-05-22 10:54:50 +01:00
Kconfig block: rename CONFIG_LBD to CONFIG_LBDAF 2009-06-19 08:08:50 +02:00
lock_dlm.c GFS2: Fix locking bug in failed shared to exclusive conversion 2009-03-24 11:21:26 +00:00
log.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
log.h [GFS2] trivial sparse lock annotations 2008-06-27 09:39:31 +01:00
lops.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
lops.h [GFS2] Only do lo_incore_commit once 2008-03-31 10:39:54 +01:00
main.c GFS2: Umount recovery race fix 2009-05-19 10:01:18 +01:00
Makefile GFS2: Rename eattr.[ch] as xattr.[ch] 2009-08-26 18:51:04 +01:00
meta_io.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
meta_io.h GFS2: Clean up of glops.c 2009-03-24 11:21:27 +00:00
ops_fstype.c GFS2: Remove no_formal_ino generating code 2009-08-27 15:51:07 +01:00
ops_inode.c GFS2: Rename eattr.[ch] as xattr.[ch] 2009-08-26 18:51:04 +01:00
quota.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
quota.h GFS2: change gfs2_quota_scan into a shrinker 2009-03-24 11:21:12 +00:00
recovery.c GFS2: Umount recovery race fix 2009-05-19 10:01:18 +01:00
recovery.h GFS2: Umount recovery race fix 2009-05-19 10:01:18 +01:00
rgrp.c GFS2: Remove no_formal_ino generating code 2009-08-27 15:51:07 +01:00
rgrp.h GFS2: Improve error handling in inode allocation 2009-08-17 11:05:31 +01:00
super.c GFS2: Remove no_formal_ino generating code 2009-08-27 15:51:07 +01:00
super.h GFS2: Clean up of extended attribute support 2009-08-26 18:41:32 +01:00
sys.c GFS2: Add sysfs link to device 2009-08-17 11:11:18 +01:00
sys.h GFS2: Remove ancient, unused code 2009-01-05 07:39:13 +00:00
trace_gfs2.h tracing/events: Move TRACE_SYSTEM outside of include guard 2009-07-13 10:59:55 +02:00
trans.c GFS2: Move journal live test at transaction start 2009-05-13 10:56:52 +01:00
trans.h [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
util.c GFS2: Add "-o errors=panic|withdraw" mount options 2009-08-24 10:44:18 +01:00
util.h GFS2: Clean up & move gfs2_quotad 2009-01-05 07:39:05 +00:00
xattr.c GFS2: Rename eattr.[ch] as xattr.[ch] 2009-08-26 18:51:04 +01:00
xattr.h GFS2: Rename eattr.[ch] as xattr.[ch] 2009-08-26 18:51:04 +01:00