/* * Check that all of the backup GDT blocks are held in the primary GDT block. * It is assumed that they are stored in group order. Returns the number of * groups in current filesystem that have BACKUPS,or -ve error code. */static int verify_reserved_gdb(struct super_block *sb,ext4_group_t end,struct buffer_head *primary){ const ext4_fsblk_t blk = primary->b_blocknr; unsigned three = 1; unsigned five = 5; unsigned seven = 7; unsigned grp; __le32 *p = (__le32 *)primary->b_data; int gdbackups = 0; while ((grp = ext4_List_backups(sb,&three,&five,&seven)) < end) { if (le32_to_cpu(*p++) != grp * EXT4_BLOCKS_PER_GROUP(sb) + blk){ ext4_warning(sb,"reserved GDT %llu" " missing grp %d (%llu)",blk,grp,grp * (ext4_fsblk_t)EXT4_BLOCKS_PER_GROUP(sb) + blk); return -EINVAL; } if (++gdbackups > EXT4_ADDR_PER_BLOCK(sb)) return -EFBIG; } return gdbackups;}
有人可以向我解释为什么这个变量是这样初始化的,这个函数在做什么?
解决方法 见00296 here行.评论说:00295 /*00296 * Iterate through the groups which hold BACKUP superblock/GDT copIEs in an00297 * ext4 filesystem. The counters should be initialized to 1,5,and 7 before00298 * calling this for the first time. In a sparse filesystem it will be the00299 * sequence of powers of 3,and 7: 1,3,7,9,25,27,49,81,...00300 * For a non-sparse filesystem it will be every group: 1,2,4,...00301 */
总之,在我看来应该将三个初始化为1来启用函数ext4_List_backups返回1.
总结以上是内存溢出为你收集整理的Linux内核中unsigned three = 1全部内容,希望文章能够帮你解决Linux内核中unsigned three = 1所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)