diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c index 5f1b11e45702096856b4fdbe407dbcd16382a2cf..1988019df5c915132112773770f464d35b1c4e51 100644 --- a/drivers/md/dm-thin.c +++ b/drivers/md/dm-thin.c @@ -923,6 +923,9 @@ static int alloc_data_block(struct thin_c *tc, dm_block_t *result) if (pool->no_free_space) return -ENOSPC; + if (get_pool_mode(pool) != PM_WRITE) + return -EINVAL; + r = dm_pool_get_free_block_count(pool->pmd, &free_blocks); if (r) return r;