Release 4.15 fs/ext4/bitmap.c
// SPDX-License-Identifier: GPL-2.0
/*
* linux/fs/ext4/bitmap.c
*
* Copyright (C) 1992, 1993, 1994, 1995
* Remy Card (card@masi.ibp.fr)
* Laboratoire MASI - Institut Blaise Pascal
* Universite Pierre et Marie Curie (Paris VI)
*/
#include <linux/buffer_head.h>
#include "ext4.h"
unsigned int ext4_count_free(char *bitmap, unsigned int numchars)
{
return numchars * BITS_PER_BYTE - memweight(bitmap, numchars);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Dave Kleikamp | 12 | 46.15% | 1 | 20.00% |
Akinobu Mita | 9 | 34.62% | 1 | 20.00% |
Theodore Y. Ts'o | 4 | 15.38% | 2 | 40.00% |
Mingming Cao | 1 | 3.85% | 1 | 20.00% |
Total | 26 | 100.00% | 5 | 100.00% |
int ext4_inode_bitmap_csum_verify(struct super_block *sb, ext4_group_t group,
struct ext4_group_desc *gdp,
struct buffer_head *bh, int sz)
{
__u32 hi;
__u32 provided, calculated;
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (!ext4_has_metadata_csum(sb))
return 1;
provided = le16_to_cpu(gdp->bg_inode_bitmap_csum_lo);
calculated = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
if (sbi->s_desc_size >= EXT4_BG_INODE_BITMAP_CSUM_HI_END) {
hi = le16_to_cpu(gdp->bg_inode_bitmap_csum_hi);
provided |= (hi << 16);
} else
calculated &= 0xFFFF;
return provided == calculated;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Darrick J. Wong | 121 | 99.18% | 1 | 50.00% |
Dmitriy Monakhov | 1 | 0.82% | 1 | 50.00% |
Total | 122 | 100.00% | 2 | 100.00% |
void ext4_inode_bitmap_csum_set(struct super_block *sb, ext4_group_t group,
struct ext4_group_desc *gdp,
struct buffer_head *bh, int sz)
{
__u32 csum;
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (!ext4_has_metadata_csum(sb))
return;
csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
gdp->bg_inode_bitmap_csum_lo = cpu_to_le16(csum & 0xFFFF);
if (sbi->s_desc_size >= EXT4_BG_INODE_BITMAP_CSUM_HI_END)
gdp->bg_inode_bitmap_csum_hi = cpu_to_le16(csum >> 16);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Darrick J. Wong | 98 | 98.99% | 1 | 50.00% |
Dmitriy Monakhov | 1 | 1.01% | 1 | 50.00% |
Total | 99 | 100.00% | 2 | 100.00% |
int ext4_block_bitmap_csum_verify(struct super_block *sb, ext4_group_t group,
struct ext4_group_desc *gdp,
struct buffer_head *bh)
{
__u32 hi;
__u32 provided, calculated;
struct ext4_sb_info *sbi = EXT4_SB(sb);
int sz = EXT4_CLUSTERS_PER_GROUP(sb) / 8;
if (!ext4_has_metadata_csum(sb))
return 1;
provided = le16_to_cpu(gdp->bg_block_bitmap_csum_lo);
calculated = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
if (sbi->s_desc_size >= EXT4_BG_BLOCK_BITMAP_CSUM_HI_END) {
hi = le16_to_cpu(gdp->bg_block_bitmap_csum_hi);
provided |= (hi << 16);
} else
calculated &= 0xFFFF;
if (provided == calculated)
return 1;
return 0;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Darrick J. Wong | 125 | 91.91% | 1 | 33.33% |
Tao Ma | 10 | 7.35% | 1 | 33.33% |
Dmitriy Monakhov | 1 | 0.74% | 1 | 33.33% |
Total | 136 | 100.00% | 3 | 100.00% |
void ext4_block_bitmap_csum_set(struct super_block *sb, ext4_group_t group,
struct ext4_group_desc *gdp,
struct buffer_head *bh)
{
int sz = EXT4_CLUSTERS_PER_GROUP(sb) / 8;
__u32 csum;
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (!ext4_has_metadata_csum(sb))
return;
csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
gdp->bg_block_bitmap_csum_lo = cpu_to_le16(csum & 0xFFFF);
if (sbi->s_desc_size >= EXT4_BG_BLOCK_BITMAP_CSUM_HI_END)
gdp->bg_block_bitmap_csum_hi = cpu_to_le16(csum >> 16);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Darrick J. Wong | 95 | 89.62% | 1 | 33.33% |
Tao Ma | 10 | 9.43% | 1 | 33.33% |
Dmitriy Monakhov | 1 | 0.94% | 1 | 33.33% |
Total | 106 | 100.00% | 3 | 100.00% |
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Darrick J. Wong | 439 | 88.33% | 2 | 18.18% |
Tao Ma | 20 | 4.02% | 1 | 9.09% |
Dave Kleikamp | 17 | 3.42% | 1 | 9.09% |
Akinobu Mita | 9 | 1.81% | 1 | 9.09% |
Dmitriy Monakhov | 4 | 0.80% | 1 | 9.09% |
Theodore Y. Ts'o | 4 | 0.80% | 2 | 18.18% |
Mingming Cao | 2 | 0.40% | 1 | 9.09% |
Greg Kroah-Hartman | 1 | 0.20% | 1 | 9.09% |
Christoph Hellwig | 1 | 0.20% | 1 | 9.09% |
Total | 497 | 100.00% | 11 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.