kernel-ark/fs/ocfs2
Tao Ma 138211515c ocfs2: Optimize inode allocation by remembering last group
In ocfs2, the inode block search looks for the "emptiest" inode
group to allocate from. So if an inode alloc file has many equally
(or almost equally) empty groups, new inodes will tend to get
spread out amongst them, which in turn can put them all over the
disk. This is undesirable because directory operations on conceptually
"nearby" inodes force a large number of seeks.

So we add ip_last_used_group in core directory inodes which records
the last used allocation group. Another field named ip_last_used_slot
is also added in case inode stealing happens. When claiming new inode,
we passed in directory's inode so that the allocation can use this
information.
For more details, please see
http://oss.oracle.com/osswiki/OCFS2/DesignDocs/InodeAllocationStrategy.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
2009-04-03 11:39:17 -07:00
..
cluster ocfs2/hb: Expose the list of heartbeating nodes via debugfs 2009-04-03 11:39:14 -07:00
dlm ocfs2/dlm: Make dlm_assert_master_handler() kill itself instead of the asserter 2009-02-26 11:51:11 -08:00
acl.c New helper - current_umask() 2009-03-31 23:00:26 -04:00
acl.h ocfs2: add ocfs2_init_acl in mknod 2009-01-05 08:34:20 -08:00
alloc.c ocfs2: Add a name indexed b-tree to directory inodes 2009-04-03 11:39:15 -07:00
alloc.h ocfs2: Add a name indexed b-tree to directory inodes 2009-04-03 11:39:15 -07:00
aops.c ocfs2: tweak to get the maximum inline data size with xattr 2009-03-12 16:45:46 -07:00
aops.h ocfs2: convert to new aops 2007-10-16 09:42:58 -07:00
blockcheck.c ocfs2: One more hamming code optimization. 2009-01-05 08:40:35 -08:00
blockcheck.h ocfs2: Add the underlying blockcheck code. 2009-01-05 08:40:31 -08:00
buffer_head_io.c ocfs2: Use BH_JBDPrivateStart instead of BH_Unshadow 2009-01-05 08:40:24 -08:00
buffer_head_io.h ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
dcache.c constify dentry_operations: OCFS2 2009-03-27 14:44:02 -04:00
dcache.h constify dentry_operations: OCFS2 2009-03-27 14:44:02 -04:00
dir.c ocfs2: fix leaf start calculation in ocfs2_dx_dir_rebalance() 2009-04-03 11:39:17 -07:00
dir.h ocfs2: Introduce dir free space list 2009-04-03 11:39:16 -07:00
dlmglue.c ocfs2: Cleanup the lockname print in dlmglue.c 2009-02-26 11:51:09 -08:00
dlmglue.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
export.c [PATCH] switch all filesystems over to d_obtain_alias 2008-10-23 05:13:01 -04:00
export.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
extent_map.c ocfs2: Wrap virtual block reads in ocfs2_read_virt_blocks() 2009-01-05 08:36:54 -08:00
extent_map.h ocfs2: Wrap virtual block reads in ocfs2_read_virt_blocks() 2009-01-05 08:36:54 -08:00
file.c remove lots of double-semicolons 2009-01-08 08:31:14 -08:00
file.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
heartbeat.c ocfs2: Move o2hb functionality into the stack glue. 2008-04-18 08:56:04 -07:00
heartbeat.h ocfs2: Move o2hb functionality into the stack glue. 2008-04-18 08:56:04 -07:00
inode.c ocfs2: Optimize inode allocation by remembering last group 2009-04-03 11:39:17 -07:00
inode.h ocfs2: Optimize inode allocation by remembering last group 2009-04-03 11:39:17 -07:00
ioctl.c ocfs2: Don't check for NULL before brelse() 2008-10-13 17:02:44 -07:00
ioctl.h ocfs2: Convert ocfs2 over to unlocked_ioctl 2008-04-18 08:56:11 -07:00
journal.c ocfs2: Add a name indexed b-tree to directory inodes 2009-04-03 11:39:15 -07:00
journal.h ocfs2: Introduce dir free space list 2009-04-03 11:39:16 -07:00
Kconfig fs/Kconfig: move ocfs2 out 2009-01-22 13:15:54 +03:00
localalloc.c ocfs2: Remove debugfs file local_alloc_stats 2009-04-03 11:39:15 -07:00
localalloc.h ocfs2: throttle back local alloc when low on disk space 2008-10-13 13:57:57 -07:00
locks.c ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
locks.h ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
Makefile ocfs2: Add the underlying blockcheck code. 2009-01-05 08:40:31 -08:00
mmap.c mm: page_mkwrite change prototype to match fault 2009-04-01 08:59:14 -07:00
mmap.h
namei.c ocfs2: Optimize inode allocation by remembering last group 2009-04-03 11:39:17 -07:00
namei.h ocfs2: Move directory manipulation code into dir.c 2007-10-12 11:54:36 -07:00
ocfs1_fs_compat.h fs/: Spelling fixes 2008-02-03 17:33:42 +02:00
ocfs2_fs.h ocfs2: Enable indexed directories 2009-04-03 11:39:16 -07:00
ocfs2_lockid.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
ocfs2_lockingver.h ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
ocfs2.h ocfs2: fix leaf start calculation in ocfs2_dx_dir_rebalance() 2009-04-03 11:39:17 -07:00
quota_global.c ocfs2: Fix possible deadlock in ocfs2_write_dquot() 2009-02-02 14:20:17 -08:00
quota_local.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
quota.h ocfs2: Fix ocfs2_read_quota_block() error handling. 2009-01-05 08:40:24 -08:00
resize.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
resize.h [PATCH 2/2] ocfs2: Implement group add for online resize 2008-01-25 15:04:24 -08:00
slot_map.c ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
slot_map.h ocfs2: De-magic the in-memory slot map. 2008-04-18 08:56:03 -07:00
stack_o2cb.c ocfs2: Remove ->hangup() from stack glue operations. 2008-06-16 10:46:52 -07:00
stack_user.c ocfs2: initialize stack_user lvbptr 2008-12-01 14:46:39 -08:00
stackglue.c ocfs2: Remove pointless !! 2008-10-13 17:02:44 -07:00
stackglue.h ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
suballoc.c ocfs2: Optimize inode allocation by remembering last group 2009-04-03 11:39:17 -07:00
suballoc.h ocfs2: Optimize inode allocation by remembering last group 2009-04-03 11:39:17 -07:00
super.c ocfs2: Add a name indexed b-tree to directory inodes 2009-04-03 11:39:15 -07:00
super.h ocfs2: use s_maxbytes directly in ocfs2_change_file_space() 2007-08-09 17:25:07 -07:00
symlink.c ocfs2: Wrap inode block reads in a dedicated function. 2009-01-05 08:36:52 -08:00
symlink.h
sysfile.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
sysfile.h
uptodate.c ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache 2008-10-13 17:02:44 -07:00
uptodate.h ocfs2: Add helper function in uptodate.c for removing xattr clusters 2008-10-13 13:57:59 -07:00
ver.c ocfs2: bump version number 2008-01-25 15:05:46 -08:00
ver.h
xattr.c ocfs2: Add a name indexed b-tree to directory inodes 2009-04-03 11:39:15 -07:00
xattr.h ocfs2: Add a name indexed b-tree to directory inodes 2009-04-03 11:39:15 -07:00