diff options
Diffstat (limited to 'drivers/md/persistent-data')
| -rw-r--r-- | drivers/md/persistent-data/dm-space-map-common.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/persistent-data/dm-space-map-common.c b/drivers/md/persistent-data/dm-space-map-common.c index d77602d63c8..f3a9af8cdec 100644 --- a/drivers/md/persistent-data/dm-space-map-common.c +++ b/drivers/md/persistent-data/dm-space-map-common.c @@ -434,14 +434,14 @@ int sm_ll_insert(struct ll_disk *ll, dm_block_t b,  	if (ref_count && !old) {  		*ev = SM_ALLOC;  		ll->nr_allocated++; -		ie_disk.nr_free = cpu_to_le32(le32_to_cpu(ie_disk.nr_free) - 1); +		le32_add_cpu(&ie_disk.nr_free, -1);  		if (le32_to_cpu(ie_disk.none_free_before) == bit)  			ie_disk.none_free_before = cpu_to_le32(bit + 1);  	} else if (old && !ref_count) {  		*ev = SM_FREE;  		ll->nr_allocated--; -		ie_disk.nr_free = cpu_to_le32(le32_to_cpu(ie_disk.nr_free) + 1); +		le32_add_cpu(&ie_disk.nr_free, 1);  		ie_disk.none_free_before = cpu_to_le32(min(le32_to_cpu(ie_disk.none_free_before), bit));  	}  |