static void lmfs_alloc_block(struct buf *bp) { ASSERT(!bp->data); ASSERT(bp->lmfs_bytes == 0); if((bp->data = minix_mmap(0, fs_block_size, PROT_READ|PROT_WRITE, MAP_PREALLOC|MAP_ANON, -1, 0)) == MAP_FAILED) { free_unused_blocks(); if((bp->data = minix_mmap(0, fs_block_size, PROT_READ|PROT_WRITE, MAP_PREALLOC|MAP_ANON, -1, 0)) == MAP_FAILED) { panic("libminixfs: could not allocate block"); } } assert(bp->data); bp->lmfs_bytes = fs_block_size; bp->lmfs_needsetcache = 1; }
static void lmfs_alloc_block(struct buf *bp, size_t block_size) { int len; ASSERT(!bp->data); ASSERT(bp->lmfs_bytes == 0); len = roundup(block_size, PAGE_SIZE); if((bp->data = mmap(0, block_size, PROT_READ|PROT_WRITE, MAP_PREALLOC|MAP_ANON, -1, 0)) == MAP_FAILED) { free_unused_blocks(); if((bp->data = mmap(0, block_size, PROT_READ|PROT_WRITE, MAP_PREALLOC|MAP_ANON, -1, 0)) == MAP_FAILED) { panic("libminixfs: could not allocate block"); } } assert(bp->data); bp->lmfs_bytes = block_size; bp->lmfs_needsetcache = 1; }