Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99ba2ae4 authored by Joe Thornber's avatar Joe Thornber Committed by Mike Snitzer
Browse files

dm cache policy mq: protect residency method with existing mutex



It is safe to use a mutex in mq_residency() at this point since it is
only called from ioctl context.  But future-proof mq_residency() by
using might_sleep() to catch new contexts that cannot sleep.

Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 9c1d4de5
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1001,10 +1001,14 @@ static void mq_force_mapping(struct dm_cache_policy *p,

static dm_cblock_t mq_residency(struct dm_cache_policy *p)
{
	dm_cblock_t r;
	struct mq_policy *mq = to_mq_policy(p);

	/* FIXME: lock mutex, not sure we can block here */
	return to_cblock(mq->nr_cblocks_allocated);
	mutex_lock(&mq->lock);
	r = to_cblock(mq->nr_cblocks_allocated);
	mutex_unlock(&mq->lock);

	return r;
}

static void mq_tick(struct dm_cache_policy *p)