diff options
Diffstat (limited to 'fs/ocfs2/localalloc.c')
| -rw-r--r-- | fs/ocfs2/localalloc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c index 0d1973ea32b0..1f17a4d08287 100644 --- a/fs/ocfs2/localalloc.c +++ b/fs/ocfs2/localalloc.c | |||
| @@ -840,6 +840,12 @@ static int ocfs2_local_alloc_new_window(struct ocfs2_super *osb, | |||
| 840 | 840 | ||
| 841 | mlog(0, "Allocating %u clusters for a new window.\n", | 841 | mlog(0, "Allocating %u clusters for a new window.\n", |
| 842 | ocfs2_local_alloc_window_bits(osb)); | 842 | ocfs2_local_alloc_window_bits(osb)); |
| 843 | |||
| 844 | /* Instruct the allocation code to try the most recently used | ||
| 845 | * cluster group. We'll re-record the group used this pass | ||
| 846 | * below. */ | ||
| 847 | ac->ac_last_group = osb->la_last_gd; | ||
| 848 | |||
| 843 | /* we used the generic suballoc reserve function, but we set | 849 | /* we used the generic suballoc reserve function, but we set |
| 844 | * everything up nicely, so there's no reason why we can't use | 850 | * everything up nicely, so there's no reason why we can't use |
| 845 | * the more specific cluster api to claim bits. */ | 851 | * the more specific cluster api to claim bits. */ |
| @@ -852,6 +858,8 @@ static int ocfs2_local_alloc_new_window(struct ocfs2_super *osb, | |||
| 852 | goto bail; | 858 | goto bail; |
| 853 | } | 859 | } |
| 854 | 860 | ||
| 861 | osb->la_last_gd = ac->ac_last_group; | ||
| 862 | |||
| 855 | la->la_bm_off = cpu_to_le32(cluster_off); | 863 | la->la_bm_off = cpu_to_le32(cluster_off); |
| 856 | alloc->id1.bitmap1.i_total = cpu_to_le32(cluster_count); | 864 | alloc->id1.bitmap1.i_total = cpu_to_le32(cluster_count); |
| 857 | /* just in case... In the future when we find space ourselves, | 865 | /* just in case... In the future when we find space ourselves, |
