[Ocfs2-devel] [PATCH 1/3] ocfs2: Add ocfs2_trim_fs for SSD trim support.
Tristan Ye
tristan.ye at oracle.com
Mon Mar 7 23:59:39 PST 2011
Tao Ma wrote:
> On 03/08/2011 12:55 PM, Tristan Ye wrote:
>> Hi Tao,
>>
>> Most of codes looks pretty neat to me, few comments inlined below:
>>
>> Tao Ma wrote:
>>> From: Tao Ma <boyu.mt at taobao.com>
>>>
>>> Add ocfs2_trim_fs to support trimming freed clusters in the
>>> volume. A range will be given and all the freed clusters greater
>>> than minlen will be discarded to the block layer.
>>>
>>> Signed-off-by: Tao Ma <boyu.mt at taobao.com>
>>> ---
>>> fs/ocfs2/alloc.c | 154
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> fs/ocfs2/alloc.h | 1 +
>>> 2 files changed, 155 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
>>> index b27a0d8..6e1b3b5 100644
>>> --- a/fs/ocfs2/alloc.c
>>> +++ b/fs/ocfs2/alloc.c
> <snip>
>>> +static int ocfs2_trim_group(struct super_block *sb,
>>> + struct ocfs2_group_desc *gd,
>>> + int start, int max, int minbits)
>>> +{
>>> + int ret = 0, count = 0, next;
>>> + void *bitmap = gd->bg_bitmap;
>>> +
>>> + while (start < max) {
>>> + start = ocfs2_find_next_zero_bit(bitmap, max, start);
>>> + if (start >= max)
>>> + break;
>> /* What if the 'start' stands within a hole */
>>
>> if (ocfs2_test_bit(...)) {
>> start = ocfs2_find_next_zero_bit(...);
>> if ((start == -1) || (start >= max))
>> break;
>> }
> I just noticed that I forget to response to this. what do you define a
> hole? It is within the global bitmap, so it is either freed or
> allocated. I don't get your meaning of 'hole'. ocfs2_find_next_zero_bit
> will do as we expected.
Here the hole means the area/range where contiguous '0' resides in the
bitmap;-)
>
> Regards,
> Tao
More information about the Ocfs2-devel
mailing list