Anonymous ID: 68379c Nov. 11, 2018, 5:05 p.m. No.3859528   ๐Ÿ—„๏ธ.is ๐Ÿ”—kun

Too long a sacrifice

Can make a stone of the heart.

O when may it suffice?

That is Heaven's part, our part

To murmur name upon name,

As a mother names her child

When sleep at last has come

On limbs that had run wild.

What is it but nightfall?

No, no, not night but death;

Was it needless after all?

For we keep faith through the storm

That batters the mad and the blind;

We know the calm of the brave

To mock the leveling wind.

And what if we'd never been called

Out of that darkness that seemed

To cling like smoke to our eyes

And harried the light from our dreams?

I write it out in a verseโ€“

For every soul that has fought

Anons and soldiers alike

And every unyielding heart

Now and in time to be

All who have weathered the storm

Are changed, changed utterly;

A terrible beauty is born.

Anonymous ID: 68379c Nov. 11, 2018, 5:47 p.m. No.3860187   ๐Ÿ—„๏ธ.is ๐Ÿ”—kun   >>0225 >>0229

struct group_info init_groups = { .usage = ATOMIC_INIT(2) }; struct group_info groups_alloc(int gidsetsize){ struct group_info group_info; int nblocks; int i; nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK; / Make sure we always allocate at least one indirect block pointer / nblocks = nblocks ? : 1; group_info = kmalloc(sizeof(group_info) + nblockssizeof(gid_t ), GFP_USER); if (!group_info) return NULL; group_info->ngroups = gidsetsize; group_info->nblocks = nblocks; atomic_set(&group_info->usage, 1); if (gidsetsize <= NGROUPS_SMALL) group_info->blocks[0] = group_info->small_block; else { for (i = 0; i < nblocks; i++) { gid_t b; b = (void )__get_free_page(GFP_USER); if (!b) goto out_undo_partial_alloc; group_info->blocks[i] = b; } } return group_info; out_undo_partial_alloc: while (โ€“i >= 0) { free_page((unsigned long)group_info->blocks[i]); } kfree(group_info); return NULL; } EXPORT_SYMBOL(groups_alloc); void groups_free(struct group_info group_info) { if (group_info->blocks[0] != group_info->small_block) { int i; for (i = 0; i < group_info->nblocks; i++) struct group_info init_groups = { .usage = ATOMIC_INIT(2) }; struct group_info groups_alloc(int gidsetsize){ struct group_info group_info; int nblocks; int i; nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK; / Make sure we always allocate at least one indirect block pointer / nblocks = nblocks ? : 1; group_info = kmalloc(sizeof(group_info) + nblockssizeof(gid_t ), GFP_USER); if (!group_info) return NULL; group_info->ngroups = gidsetsize; group_info->nblocks = nblocks; atomic_set(&group_info->usage, 1); if (gidsetsize <= NGROUPS_SMALL) group_info->blocks[0] = group_info->small_block; else { for (i = 0; i < nblocks; i++) { gid_t b; b = (void )__get_free_page(GFP_USER); if (!b) goto out_undo_partial_alloc; group_info->blocks[i] = b; } } return group_info; out_undo_partial_alloc: while (โ€“i >= 0) { free_page((unsigned long)group_info->blocks[i]); } kfree(group_info); return NULL; } EXPORT_SYMBOL(groups_alloc); void groups_free(struct group_info group_info) { if (group_info->blocks[0] != group_info->small_block) { int i; for (i = 0; i < group_info->nblocks; i++) struct group_info init_groups = { .usage = ATOMIC_INIT(2) }; struct group_info groups_alloc(int gidsetsize){ struct group_info group_info; int nblocks; int i; nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK; / Make sure we always allocate at least one indirect block pointer / nblocks = nblocks ? : 1; group_info = kmalloc(sizeof(group_info) + nblockssizeof(gid_t ), GFP_USER); if (!group_info) return NULL; group_info->ngroups = gidsetsize; group_info->nblocks = nblocks; atomic_set(&group_info->usage, 1); if (gidsetsize <= NGROUPS_SMALL) group_info->blocks[0] = group_info->small_block; else { for (i = 0; i < nblocks; i++) { gid_t b; b = (void )__get_free_page(GFP_USER); if (!b) goto out_undo_partial_alloc; group_info->blocks[i] = b; } } return group_info; out_undo_partial_alloc: while (โ€“i >= 0) { free_page((unsigned long)group_info->blocks[i]); } kfree(group_info); return NULL; } EXPORT_SYMBOL(groups_alloc); void groups_free(struct group_info group_info) { if (group_info->blocks[0] != group_info->small_block) { int i; for (i = 0; i < group_info->nblocks; i++) echo('BO SHUTDOWN');