diff options
author | Tao Ma <tao.ma@oracle.com> | 2008-03-05 03:11:46 -0500 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-04-18 11:56:10 -0400 |
commit | 4d0ddb2ce25db2254d468233d942276ecf40bff8 (patch) | |
tree | 6a114da03bb9911de637146f2b24866f1ae96718 /fs/ocfs2/super.c | |
parent | a4a4891164d4f6f383cc17e7c90828a7ca6a1146 (diff) |
ocfs2: Add inode stealing for ocfs2_reserve_new_inode
Inode allocation is modified to look in other nodes allocators during
extreme out of space situations. We retry our own slot when space is freed
back to the global bitmap, or whenever we've allocated more than 1024 inodes
from another slot.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/super.c')
-rw-r--r-- | fs/ocfs2/super.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 96ebe36d5d77..df63ba20ae90 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -1394,6 +1394,7 @@ static int ocfs2_initialize_super(struct super_block *sb, | |||
1394 | INIT_LIST_HEAD(&osb->blocked_lock_list); | 1394 | INIT_LIST_HEAD(&osb->blocked_lock_list); |
1395 | osb->blocked_lock_count = 0; | 1395 | osb->blocked_lock_count = 0; |
1396 | spin_lock_init(&osb->osb_lock); | 1396 | spin_lock_init(&osb->osb_lock); |
1397 | ocfs2_init_inode_steal_slot(osb); | ||
1397 | 1398 | ||
1398 | atomic_set(&osb->alloc_stats.moves, 0); | 1399 | atomic_set(&osb->alloc_stats.moves, 0); |
1399 | atomic_set(&osb->alloc_stats.local_data, 0); | 1400 | atomic_set(&osb->alloc_stats.local_data, 0); |