[PATCHv10 4/9] block: allow ability to limit partition write hints
Bart Van Assche
bvanassche at acm.org
Tue Oct 29 10:25:11 PDT 2024
On 10/29/24 8:19 AM, Keith Busch wrote:
> +static ssize_t part_write_hint_mask_store(struct device *dev,
> + struct device_attribute *attr,
> + const char *buf, size_t count)
> +{
> + struct block_device *bdev = dev_to_bdev(dev);
> + unsigned short max_write_hints = bdev_max_write_hints(bdev);
> + unsigned long *new_mask;
> +
> + if (!max_write_hints)
> + return count;
> +
> + new_mask = bitmap_alloc(max_write_hints, GFP_KERNEL);
> + if (!new_mask)
> + return -ENOMEM;
> +
> + bitmap_parse(buf, count, new_mask, max_write_hints);
> + bitmap_copy(bdev->write_hint_mask, new_mask, max_write_hints);
> + bitmap_free(new_mask);
> +
> + return count;
> +}
bitmap_copy() is not atomic. Shouldn't the bitmap_copy() call be
serialized against the code that tests bits in bdev->write_hint_mask?
Thanks,
Bart.
More information about the Linux-nvme
mailing list