据量的改变对响应参数进行修改,并释放data_buf,通过data_buf_new中生成下层写操作函数所需的10结构1vec,调用下层函数完成写操作。
[0070]另外,文件系统读操基于f_op->read函数中实现,该函数接收下层函数传来的1vec结构中的数据并将数据传到用户缓冲区data_buf中,具体来说,对文件进行读操作的流程包括:
[0071]申请数据缓冲区data_buf_tmp,并将下层返回的1vec中的数据存入data_buf_tmp中;读取文件inode结构中的file_level属性,确定其重要级别,如果其重要级别为1,则将data_buf_tmp中的数据存入data_buf中,结束并返回读取成功,如果其重要级别为0,则对data_buf_tmp中的数据以32位为单位分割,并用海明校验方法重新计算读取的数据的读校验码,并将读校验码与文件中存储的校验码进行对比,如果完全一致说明数据正确,将分割后的数据去除校验码部分,然后将数据存入data_buf中,结束并返回读取成功,如果校验码不一致,则根据海明校验方法的规则判断出错的数据位数,如果只有一位数据出错,则判断出错数据位的位置并纠错,进一步将分割并去除校验码后的数据存入data_buf中,结束并返回读取成功,如果有两位及两位以上出错则直接返回错误。
[0072]与上述方法实施例相对应,本发明实施例一种文件管理装置,如图3所示,可以包括:
[0073]判断模块11,用于确定需要读取的文件为目标文件,获取该目标文件的目标重要级别,并判断目标重要级别是否为预设重要级别;
[0074]第一执行模块12,用于如果目标重要级别为预设重要级别,则利用预先写入目标文件中的校验码对目标文件中包含的数据进行校验,并在校验成功后读取目标文件中包含的数据;
[0075]第二执行模块13,用于如果目标重要级别不为预设重要级别,则直接读取目标文件中包含的数据。
[0076]本申请在获取文件的重要级别之后,判断重要级别是否为预设重要级别,如果是,则对其数据进行校验,否则,则直接读取数据,由此,对于重要级别较高的,或者说对其完整性要求较高的数据进行错误验证,而对于重要级别较低的,或者说对其完整性要求较低的数据则不进行错误验证,不同于现有技术中对于存储的全部数据均进行错误校验的技术方案,因此,有效减少了进行错误校验的次数,从而节省了逻辑资源的同时,大大降低了错误校验对读写性能造成的不良影响。
[0077]上述实施例提供的一种文件管理装置中,还可以包括:
[0078]写入模块,用于获取目标文件的目标重要级别,并当判断出目标重要级别为预设重要级别时,按照与目标重要级别对应级别的校验方法对目标文件中包含的数据进行计算,生成对应的校验码,并将校验码写入目标文件中。
[0079]上述实施例提供的一种文件管理装置中,第一执行模块可以包括:
[0080]校验单元,用于利用与校验码对应的校验方法对目标文件中除校验码之外的其他数据进行计算得到读校验码,如果读校验码与目标文件中包含的对应校验码一致,则确定校验成功。
[0081]上述实施例提供的一种文件管理装置中,判断模块可以包括:
[0082]获取单元,用于查询目标文件的inode结构,以获取inode结构中标示该目标文件的重要级别的级别属性,并确定预先创建该目标文件时为级别属性设置的属性值为目标重要级别。
[0083]上述实施例提供的一种文件管理装置中,还可以包括:
[0084]创建模块,用于获取目标文件的目标后缀名,将目标后缀名与预先建立的后缀列表中包含的后缀名进行匹配,并依据匹配得到的匹配结果设置级别属性的属性值。
[0085]上述实施例提供的一种文件管理装置中,还可以包括:
[0086]建立模块,用于获取其重要级别为预设重要级别的全部文件对应的后缀名,并将具有相同首字母的后缀名以数组的形式存放在平衡二叉树的同一节点中,确定平衡二叉树为后缀名列表。
[0087]由于上述装置实施例与上述方法实施例相对应,因此,对于其具体说明请参见上述方法实施例中对应部分的说明,在此不再赘述。
[0088]对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种文件管理方法,其特征在于,包括: 确定需要读取的文件为目标文件,获取该目标文件的目标重要级别,并判断所述目标重要级别是否为预设重要级别; 如果所述目标重要级别为所述预设重要级别,则利用预先写入所述目标文件中的校验码对所述目标文件中包含的数据进行校验,并在校验成功后读取所述目标文件中包含的数据; 如果所述目标重要级别不为所述预设重要级别,则直接读取所述目标文件中包含的数据。2.根据权利要求1所述的方法,其特征在于,预先将所述校验码写入所述目标文件的过程包括: 获取所述目标文件的目标重要级别,并当判断出所述目标重要级别为所述预设重要级别时,按照与所述目标重要级别对应级别的校验方法对所述目标文件中包含的数据进行计算,生成对应的校验码,并将所述校验码写入所述目标文件中。3.根据权利要求2所述的方法,其特征在于,利用所述校验码对所述目标文件中包含的数据进行校验,包括: 利用与所述校验码对应的校验方法对所述目标文件中除所述校验码之外的其他数据进行计算得到读校验码,如果所述读校验码与所述目标文件中包含的对应校验码一致,则确定校验成功。4.根据权利要求1所述的方法,其特征在于,获取所述目标文件的目标重要级别,包括: 查询所述目标文件的inode结构,以获取所述inode结构中标示该目标文件的重要级别的级别属性,并确定预先创建该目标文件时为所述级别属性设置的属性值为所述目标重要级别。5.根据权利要求4所述的方法,其特征在于,预先创建所述目标文件时为所述级别属性设置属性值,包括: 获取所述目标文件的目标后缀名,将所述目标后缀名与预先建立的后缀列表中包含的后缀名进行匹配,并依据匹配得到的匹配结果设置所述级别属性的属性值。6.根据权利要求5所述的方法,其特征在于,所述后缀名列表的预先建立过程,包括: 获取其重要级别为所述预设重要级别的全部文件对应的后缀名,并将具有相同首字母的后缀名以数组的形式存放在平衡二叉树的同一节点中,确定所述平衡二叉树为所述后缀名列表。7.一种文件管理装置,其特征在于,包括: 判断模块,用于确定需要读取的文件为目标文件,获取该目标文件的目标重要级别,并判断所述目标重要级别是否为预设重要级别; 第一执行模块,用于如果所述目标重要级别为所述预设重要级别,则利用预先写入所述目标文件中的校验码对所述目标文件中包含的数据进行校验,并在校验成功后读取所述目标文件中包含的数据; 第二执行模块,用于如果所述目标重要级别不为所述预设重要级别,则直接读取所述目标文件中包含的数据。8.根据权利要求7所述的装置,其特征在于,还包括: 写入模块,用于获取所述目标文件的目标重要级别,并当判断出所述目标重要级别为所述预设重要级别时,按照与所述目标重要级别对应级别的校验方法对所述目标文件中包含的数据进行计算,生成对应的校验码,并将所述校验码写入所述目标文件中。9.根据权利要求8所述的装置,其特征在于,第一执行模块包括: 校验单元,用于利用与所述校验码对应的校验方法对所述目标文件中除所述校验码之外的其他数据进行计算得到读校验码,如果所述读校验码与所述目标文件中包含的对应校验码一致,则确定校验成功。10.根据权利要求7所述的装置,其特征在于,判断模块包括: 获取单元,用于查询所述目标文件的inode结构,以获取所述inode结构中标示该目标文件的重要级别的级别属性,并确定预先创建该目标文件时为所述级别属性设置的属性值为所述目标重要级别。
【专利摘要】本发明公开了一种文件管理方法及装置,其中,该方法包括:确定需要读取的文件为目标文件,获取该目标文件的目标重要级别,并判断目标重要级别是否为预设重要级别;如果目标重要级别为预设重要级别,则利用预先写入目标文件中的校验码对目标文件中包含的数据进行校验,并在校验成功后读取目标文件中包含的数据;如果目标重要级别不为预设重要级别,则直接读取目标文件中包含的数据。本申请在获取文件的重要级别之后,判断重要级别是否为预设重要级别,如果是,则对其数据进行校验,否则,则直接读取数据,从而节省了逻辑资源的同时,大大降低了错误校验对读写性能造成的不良影响。
【IPC分类】G06F17/30
【公开号】CN105302924
【申请号】CN201510907216
【发明人】刘相乐
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2016年2月3日
【申请日】2015年12月9日