[PATCH 5/5] block: Inline blk_integrity in struct gendisk
Mike Snitzer
snitzer at redhat.com
Mon Oct 12 16:06:33 PDT 2015
On Mon, Oct 12 2015 at 5:05pm -0400,
Martin K. Petersen <martin.petersen at oracle.com> wrote:
> Up until now the_integrity profile has been dynamically allocated and
> attached to struct gendisk after the disk has been made active.
>
> This causes problems because NVMe devices need to register the profile
> prior to the partition table being read due to a mandatory metadata
> buffer requirement. In addition, DM goes through hoops to deal with
> preallocating, but not initializing integrity profiles.
>
> Since the integrity profile is small (4 bytes + a pointer), Christoph
> suggested moving it to struct gendisk proper. This requires several
> changes:
>
> - Moving the blk_integrity definition to genhd.h.
>
> - Inlining blk_integrity in struct gendisk.
>
> - Removing the dynamic allocation code.
>
> - Adding helper functions which allow gendisk to set up and tear down
> the integrity sysfs dir when a disk is added/deleted.
>
> - Adding a blk_integrity_revalidate() callback for updating the stable
> pages bdi setting.
>
> - The calls that depend on whether a device has an integrity profile or
> not now key off of the bi->profile pointer.
>
> - Simplifying the integrity support routines in DM (Mike Snitzer).
>
> Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
> Reported-by: Christoph Hellwig <hch at lst.de>
> Reviewed-by: Sagi Grimberg <sagig at mellanox.com>
> Cc: Mike Snitzer <snitzer at redhat.com>
> Cc: Dan Williams <dan.j.williams at intel.com>
Thanks Martin.
Please replace the Cc: Mike Snitzer <snitzer at redhat.com> above with
Signed-off-by: Mike Snitzer <snitzer at redhat.com>
More information about the Linux-nvme
mailing list