Пример #1
0
bool
tmpfs_mem_incr(struct tmpfs_mount *mp, size_t sz)
{
	uint64_t lim;

	mutex_enter(&mp->tm_acc_lock);
	lim = tmpfs_bytes_max(mp);
	if (mp->tm_bytes_used + sz >= lim) {
		mutex_exit(&mp->tm_acc_lock);
		return false;
	}
	mp->tm_bytes_used += sz;
	mutex_exit(&mp->tm_acc_lock);
	return true;
}
Пример #2
0
int
tmpfs_mem_incr(struct tmpfs_mount *mp, size_t sz)
{
	uint64_t lim;

	rw_enter_write(&mp->tm_acc_lock);
	lim = tmpfs_bytes_max(mp);
	if (mp->tm_bytes_used + sz >= lim) {
		rw_exit_write(&mp->tm_acc_lock);
		return 0;
	}
	mp->tm_bytes_used += sz;
	rw_exit_write(&mp->tm_acc_lock);
	return 1;
}
Пример #3
0
int
tmpfs_mem_incr(struct tmpfs_mount *mp, size_t sz)
{
	uint64_t lim;

	mtx_enter(&mp->tm_acc_lock);
	lim = tmpfs_bytes_max(mp);
	if (mp->tm_bytes_used + sz >= lim) {
		mtx_leave(&mp->tm_acc_lock);
		return 0;
	}
	mp->tm_bytes_used += sz;
	mtx_leave(&mp->tm_acc_lock);
	return 1;
}
Пример #4
0
size_t
tmpfs_pages_avail(struct tmpfs_mount *mp)
{

	return (tmpfs_bytes_max(mp) - mp->tm_bytes_used) >> PAGE_SHIFT;
}