summaryrefslogtreecommitdiffstats
path: root/include/linux/unwind.h
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2017-04-18 18:43:20 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-05-14 14:06:03 +0200
commit0873ab02247ec7453b0758e99f125587bfb4cd85 (patch)
tree3dc87e00f1d73160e2dfe0b6b6240225edaff346 /include/linux/unwind.h
parent3ed024e27424c98237aae18b968c9a3bb69358e6 (diff)
downloadblackbird-op-linux-0873ab02247ec7453b0758e99f125587bfb4cd85.tar.gz
blackbird-op-linux-0873ab02247ec7453b0758e99f125587bfb4cd85.zip
block: get rid of blk_integrity_revalidate()
commit 19b7ccf8651df09d274671b53039c672a52ad84d upstream. Commit 25520d55cdb6 ("block: Inline blk_integrity in struct gendisk") introduced blk_integrity_revalidate(), which seems to assume ownership of the stable pages flag and unilaterally clears it if no blk_integrity profile is registered: if (bi->profile) disk->queue->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES; else disk->queue->backing_dev_info->capabilities &= ~BDI_CAP_STABLE_WRITES; It's called from revalidate_disk() and rescan_partitions(), making it impossible to enable stable pages for drivers that support partitions and don't use blk_integrity: while the call in revalidate_disk() can be trivially worked around (see zram, which doesn't support partitions and hence gets away with zram_revalidate_disk()), rescan_partitions() can be triggered from userspace at any time. This breaks rbd, where the ceph messenger is responsible for generating/verifying CRCs. Since blk_integrity_{un,}register() "must" be used for (un)registering the integrity profile with the block layer, move BDI_CAP_STABLE_WRITES setting there. This way drivers that call blk_integrity_register() and use integrity infrastructure won't interfere with drivers that don't but still want stable pages. Fixes: 25520d55cdb6 ("block: Inline blk_integrity in struct gendisk") Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Mike Snitzer <snitzer@redhat.com> Tested-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Jens Axboe <axboe@fb.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/unwind.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud