X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/4cf445cb569be5f1f078ea27fd5d1b172402f44f..130d1cf10ae76844c1dfe5002c741b82a53244a5:/lunaix-os/kernel/fs/ext2/group.c diff --git a/lunaix-os/kernel/fs/ext2/group.c b/lunaix-os/kernel/fs/ext2/group.c index 277d690..d11e510 100644 --- a/lunaix-os/kernel/fs/ext2/group.c +++ b/lunaix-os/kernel/fs/ext2/group.c @@ -126,7 +126,7 @@ __try_load_bitmap(struct v_superblock* vsb, } int -ext2gd_take(struct v_superblock* vsb, +ext2gd_take_at(struct v_superblock* vsb, unsigned int index, struct ext2_gdesc** out) { bbuf_t part, buf; @@ -169,6 +169,8 @@ ext2gd_take(struct v_superblock* vsb, .ino_base = index * ext2sb->raw->s_ino_per_grp }; + mutex_init(&gd->lock); + *out = gd; if (!ext2sb->read_only) { @@ -235,16 +237,8 @@ ext2bmp_init(struct ext2_bmp* e_bmp, bbuf_t bmp_buf, unsigned int nr_bits) __ext2bmp_update_next_free_cell(e_bmp); } -bool -ext2bmp_check_free(struct ext2_bmp* e_bmp) -{ - assert(e_bmp->raw); - - return valid_bmp_slot(e_bmp->next_free); -} - int -ext2bmp_alloc_one(struct ext2_bmp* e_bmp) +ext2bmp_alloc_nolock(struct ext2_bmp* e_bmp) { assert(e_bmp->raw); @@ -275,7 +269,7 @@ ext2bmp_alloc_one(struct ext2_bmp* e_bmp) } void -ext2bmp_free_one(struct ext2_bmp* e_bmp, unsigned int pos) +ext2bmp_free_nolock(struct ext2_bmp* e_bmp, unsigned int pos) { assert(e_bmp->raw); @@ -291,7 +285,7 @@ ext2bmp_free_one(struct ext2_bmp* e_bmp, unsigned int pos) } void -ext2bmp_discard(struct ext2_bmp* e_bmp) +ext2bmp_discard_nolock(struct ext2_bmp* e_bmp) { assert(e_bmp->raw);