From: Greg Kroah-Hartman Date: Fri, 9 Nov 2018 11:19:57 +0000 (-0800) Subject: drop block-don-t-deal-with-discard-limit-in-blkdev_issue_discard.patch X-Git-Tag: v3.18.125~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dfd1a3d64706b66443b4d323749a95ee09bb54a4;p=thirdparty%2Fkernel%2Fstable-queue.git drop block-don-t-deal-with-discard-limit-in-blkdev_issue_discard.patch --- diff --git a/queue-4.18/block-don-t-deal-with-discard-limit-in-blkdev_issue_discard.patch b/queue-4.18/block-don-t-deal-with-discard-limit-in-blkdev_issue_discard.patch deleted file mode 100644 index 5383158ff22..00000000000 --- a/queue-4.18/block-don-t-deal-with-discard-limit-in-blkdev_issue_discard.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 744889b7cbb56a64f957e65ade7cb65fe3f35714 Mon Sep 17 00:00:00 2001 -From: Ming Lei -Date: Fri, 12 Oct 2018 15:53:10 +0800 -Subject: block: don't deal with discard limit in blkdev_issue_discard() - -From: Ming Lei - -commit 744889b7cbb56a64f957e65ade7cb65fe3f35714 upstream. - -blk_queue_split() does respect this limit via bio splitting, so no -need to do that in blkdev_issue_discard(), then we can align to -normal bio submit(bio_add_page() & submit_bio()). - -More importantly, this patch fixes one issue introduced in a22c4d7e34402cc -("block: re-add discard_granularity and alignment checks"), in which -zero discard bio may be generated in case of zero alignment. - -Fixes: a22c4d7e34402ccdf3 ("block: re-add discard_granularity and alignment checks") -Cc: stable@vger.kernel.org -Cc: Ming Lin -Cc: Mike Snitzer -Cc: Christoph Hellwig -Cc: Xiao Ni -Tested-by: Mariusz Dabrowski -Signed-off-by: Ming Lei -Signed-off-by: Jens Axboe -Signed-off-by: Greg Kroah-Hartman - ---- - block/blk-lib.c | 28 ++-------------------------- - 1 file changed, 2 insertions(+), 26 deletions(-) - ---- a/block/blk-lib.c -+++ b/block/blk-lib.c -@@ -29,9 +29,7 @@ int __blkdev_issue_discard(struct block_ - { - struct request_queue *q = bdev_get_queue(bdev); - struct bio *bio = *biop; -- unsigned int granularity; - unsigned int op; -- int alignment; - sector_t bs_mask; - - if (!q) -@@ -54,38 +52,16 @@ int __blkdev_issue_discard(struct block_ - if ((sector | nr_sects) & bs_mask) - return -EINVAL; - -- /* Zero-sector (unknown) and one-sector granularities are the same. */ -- granularity = max(q->limits.discard_granularity >> 9, 1U); -- alignment = (bdev_discard_alignment(bdev) >> 9) % granularity; -- - while (nr_sects) { -- unsigned int req_sects; -- sector_t end_sect, tmp; -+ unsigned int req_sects = nr_sects; -+ sector_t end_sect; - -- /* -- * Issue in chunks of the user defined max discard setting, -- * ensuring that bi_size doesn't overflow -- */ -- req_sects = min_t(sector_t, nr_sects, -- q->limits.max_discard_sectors); - if (!req_sects) - goto fail; - if (req_sects > UINT_MAX >> 9) - req_sects = UINT_MAX >> 9; - -- /* -- * If splitting a request, and the next starting sector would be -- * misaligned, stop the discard at the previous aligned sector. -- */ - end_sect = sector + req_sects; -- tmp = end_sect; -- if (req_sects < nr_sects && -- sector_div(tmp, granularity) != alignment) { -- end_sect = end_sect - alignment; -- sector_div(end_sect, granularity); -- end_sect = end_sect * granularity + alignment; -- req_sects = end_sect - sector; -- } - - bio = next_bio(bio, 0, gfp_mask); - bio->bi_iter.bi_sector = sector; diff --git a/queue-4.18/series b/queue-4.18/series index 95b8cf39384..ccb422d2885 100644 --- a/queue-4.18/series +++ b/queue-4.18/series @@ -20,7 +20,6 @@ usb-gadget-storage-fix-spectre-v1-vulnerability.patch usb-roles-intel_xhci-fix-unbalanced-pm_runtime_enable.patch usb-xhci-pci-enable-intel-usb-role-mux-on-apollo-lake-platforms.patch usb-fix-the-usbfs-flag-sanitization-for-control-transfers.patch -block-don-t-deal-with-discard-limit-in-blkdev_issue_discard.patch tracing-fix-synthetic-event-to-accept-unsigned-modifier.patch tracing-fix-synthetic-event-to-allow-semicolon-at-end.patch input-elan_i2c-add-acpi-id-for-lenovo-ideapad-330-15igm.patch