From: Bruce Johnston <[email protected]>

GFP_NOWAIT is inappropriate when blkdev_issue_zeroout may sleep and
bio_alloc can fail under pressure; use GFP_NOIO for clear_partition and
vdo_clear_layout zeroout calls.

Signed-off-by: Bruce Johnston <[email protected]>
Signed-off-by: Matthew Sakai <[email protected]>
---
 drivers/md/dm-vdo/vdo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/md/dm-vdo/vdo.c b/drivers/md/dm-vdo/vdo.c
index 7bec2418c121..d0d4e0262be2 100644
--- a/drivers/md/dm-vdo/vdo.c
+++ b/drivers/md/dm-vdo/vdo.c
@@ -965,7 +965,7 @@ static int __must_check clear_partition(struct vdo *vdo, 
enum partition_id id)
        return blkdev_issue_zeroout(vdo_get_backing_device(vdo),
                                    partition->offset * VDO_SECTORS_PER_BLOCK,
                                    partition->count * VDO_SECTORS_PER_BLOCK,
-                                   GFP_NOWAIT, 0);
+                                   GFP_NOIO, 0);
 }
 
 int vdo_clear_layout(struct vdo *vdo)
@@ -976,7 +976,7 @@ int vdo_clear_layout(struct vdo *vdo)
        result = blkdev_issue_zeroout(vdo_get_backing_device(vdo),
                                      VDO_SECTORS_PER_BLOCK,
                                      VDO_SECTORS_PER_BLOCK,
-                                     GFP_NOWAIT, 0);
+                                     GFP_NOIO, 0);
        if (result != VDO_SUCCESS)
                return result;
 
-- 
2.53.0


Reply via email to