Skip to content

Commit 1900e0d

Browse files
committed
'test'
1 parent cdbfba0 commit 1900e0d

File tree

1 file changed

+32
-30
lines changed

1 file changed

+32
-30
lines changed

fs/hmfs/segment.c

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
* it fall into space where we have actually writen data
77
* into. It's different from valid bits in summary entry
88
*/
9+
910
/*
10-
*1 is_valid_address:�ȸ�ݲ����ȡ��ǰָ��ָ��Ķ������ڵĶκ�
11-
* @sbi:ָ�򳬼�����Ϣ��ָ��ʵ��
12-
* @addr:���ַ
13-
* ���öκŵ��ڼ���ָ�����ݿ����ڵĶκţ��򷵻ص�ǰ�������ڵ���ݵ�ƫ�ƣ�֤���õ�ַ��Ч
14-
* ͬ�?�����ڵ�ǰnode���ڵĶκţ��򷵻ص�ǰ�������ڵ�node��ƫ�ƣ�Ҳ֤���õ�ַ��Ч
15-
* ����Ϊ��Ч��ַ,��Ϊ0
11+
* *1 is_valid_address:先根据参数获取当前指针指向的对象所在的段号
12+
- * @sbi:指向超级块信息的指针实例
13+
- * @addr:块地址
14+
- * 如果该段号等于检查点指针的数据块所在的段号,则返回当前检查点所在的数据的偏移,证明该地址有效
15+
- * 同理,如果等于当前node所在的段号,则返回当前检查点所在的node的偏移,也证明该地址有效
16+
- * 否则,为无效地址,置为0
1617
*/
1718
bool is_valid_address(struct hmfs_sb_info *sbi, block_t addr)
1819
{
@@ -27,9 +28,9 @@ bool is_valid_address(struct hmfs_sb_info *sbi, block_t addr)
2728
return get_seg_entry(sbi, segno)->valid_blocks > 0;
2829
}
2930
/*
30-
*2 total_valid_blocks������main area�������жΣ�����ij�����������õ�����Ч��ĸ���
31-
*@ sbi:ָ�򳬼�����Ϣ��ָ��ʵ��
32-
*@ return:�ܵ���Ч��ĸ���
31+
*2 total_valid_blocks:遍历main area区域所有段,计算某个超级块中用到的有效块的个数
32+
- *@ sbi:指向超级块信息的指针实例
33+
- *@ return:总的有效快的个数
3334
*/
3435

3536
unsigned long total_valid_blocks(struct hmfs_sb_info *sbi)
@@ -44,10 +45,10 @@ unsigned long total_valid_blocks(struct hmfs_sb_info *sbi)
4445
return sum;
4546
}
4647
/*
47-
*3 get_seg_vblocks_in_summary:����SSA����ĵ�ǰ���£�����ÿ��ÿҳÿ�����Ч�ڵ�ĸ���
48-
*@ sbi:ָ�򳬼�����Ϣ��ָ��ʵ��
49-
*@ segno:�κŵ�����
50-
*@ return:���ص�ǰ��Ч�ڵ�ĸ���
48+
*3 get_seg_vblocks_in_summary:遍历SSA区域的当前段下,遍历每段每页每块的有效节点的个数
49+
- *@ sbi:指向超级块信息的指针实例
50+
- *@ segno:段号的类型
51+
- *@ return:返回当前有效节点的个数
5152
*/
5253
unsigned long get_seg_vblocks_in_summary(struct hmfs_sb_info *sbi, seg_t segno)
5354
{
@@ -79,11 +80,12 @@ unsigned long get_seg_vblocks_in_summary(struct hmfs_sb_info *sbi, seg_t segno)
7980
}
8081
return count;
8182
}
83+
8284
/*
83-
*4 __mark_sit_entry_dirty:��¼��ǰ����SIT�����entry�ĸ���
84-
*@sit_i��ָ�� SIT���ʵ��
85-
*@segno���κŵ�����
86-
*@return:���ص�ǰ��ǰSIT�����entry�ĸ���
85+
*4 __mark_sit_entry_dirty:记录当前段中SIT中脏的entry的个数
86+
- *@sit_i:指向 SIT表的实例
87+
- *@segno:段号的类型
88+
- *@return:返回当前当前SIT总脏的entry的个数
8789
*/
8890
static void __mark_sit_entry_dirty(struct sit_info *sit_i, seg_t segno)
8991
{
@@ -92,11 +94,12 @@ static void __mark_sit_entry_dirty(struct sit_info *sit_i, seg_t segno)
9294
}
9395

9496
/* Return amount of blocks which has been invalidated */
97+
9598
/*
96-
*5 invalidate_delete_block:���жϵ�ǰ���Ƿ������°汾�Ŀ飬����ǣ���ݿ��ַ��ȡ�κţ�ͬʱ���öα��Ϊ��
97-
*@sbi:ָ�򳬼�����Ϣ��ָ��ʵ��
98-
*@addr:��ǰ��ĵ�ַ
99-
*@return:������Ч�Ŀ������
99+
*5 invalidate_delete_block:先判断当前块是否是最新版本的块,如果不是,根据块地址获取段号,同时将该段标记为脏
100+
- *@sbi:指向超级块信息的指针实例
101+
- *@addr:当前块的地址
102+
- *@return:返回无效的块的数量
100103
*/
101104
int invalidate_delete_block(struct hmfs_sb_info *sbi, block_t addr)
102105
{
@@ -119,9 +122,8 @@ int invalidate_delete_block(struct hmfs_sb_info *sbi, block_t addr)
119122
}
120123

121124
/*
122-
*6 init_min_max_mtime:����ǰentry�ı?Ȼ�����ǰ�����������еĶΣ�ͬʱ�������ж�SIT�������Сmtime
123-
*@sbi:ָ�򳬼�����Ϣ��ָ��ʵ��
124-
*
125+
- *6 init_min_max_mtime:先锁定当前entry的表,然后遍历当前超级块中所有的段,同时设置所有段SIT的最大、最小mtime
126+
- *@sbi:指向超级块信息的指针实例
125127
*/
126128
static void init_min_max_mtime(struct hmfs_sb_info *sbi)
127129
{
@@ -143,10 +145,10 @@ static void init_min_max_mtime(struct hmfs_sb_info *sbi)
143145
unlock_sentry(sit_i);
144146
}
145147
/*
146-
*7 update_sit_entry:��¼��ǰ�ε���Ч�Ŀ���ͬʱ��¼��ǰ�εĿ��еĺ���Ĵ�С�����Ҹ���µ���Ч��SITentry�����µ�ǰ�ε�entry��Ϣ
147-
*@sbi:ָ�򳬼�����Ϣ��ָ��ʵ��
148-
*@segno���κŵ�����
149-
*@del����ƫ��
148+
- *7 update_sit_entry:记录当前段的有效的块数,同时记录当前段的空闲的和脏的大小,并且根据新的有效块SITentry,更新当前段的entry信息
149+
- *@sbi:指向超级块信息的指针实例
150+
- *@segno:段号的类型
151+
- *@del:段偏移
150152
*/
151153

152154
void update_sit_entry(struct hmfs_sb_info *sbi, seg_t segno,
@@ -172,8 +174,8 @@ void update_sit_entry(struct hmfs_sb_info *sbi, seg_t segno,
172174
}
173175

174176
/*
175-
*8 reset_curseg:���õ�ǰ�ε�δ��������ʼλ��
176-
*@seg_i:��ǰ�εĶκ�
177+
- *8 reset_curseg:重置当前段的未分配块的起始位置
178+
- *@seg_i:当前段的段号
177179
*/
178180
static void reset_curseg(struct curseg_info *seg_i)
179181
{

0 commit comments

Comments
 (0)