Beispiel #1
0
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;
}
Beispiel #2
0
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;
}