lkml.org 
[lkml]   [2020]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH block v2 1/3] block: Add @flags argument to bdev_write_zeroes_sectors()
    From
    Date
    On 19.01.2020 04:46, Bob Liu wrote:
    > On 1/16/20 8:35 PM, Kirill Tkhai wrote:
    >> This is a preparation for next patch, which introduces
    >> a new flag BLKDEV_ZERO_ALLOCATE for calls, which need
    >> only allocation of blocks and don't need actual blocks
    >> zeroing.
    >>
    >> CC: Martin K. Petersen <martin.petersen@oracle.com>
    >> Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    >> ---
    >> block/blk-lib.c | 6 +++---
    >> drivers/md/dm-kcopyd.c | 2 +-
    >> drivers/target/target_core_iblock.c | 4 ++--
    >> include/linux/blkdev.h | 3 ++-
    >> 4 files changed, 8 insertions(+), 7 deletions(-)
    >>
    >
    > Looks good to me.
    > Reviewed-by: Bob Liu <bob.liu@oracle.com>

    Thanks, Bob.

    >> diff --git a/block/blk-lib.c b/block/blk-lib.c
    >> index 5f2c429d4378..3e38c93cfc53 100644
    >> --- a/block/blk-lib.c
    >> +++ b/block/blk-lib.c
    >> @@ -224,7 +224,7 @@ static int __blkdev_issue_write_zeroes(struct block_device *bdev,
    >> return -EPERM;
    >>
    >> /* Ensure that max_write_zeroes_sectors doesn't overflow bi_size */
    >> - max_write_zeroes_sectors = bdev_write_zeroes_sectors(bdev);
    >> + max_write_zeroes_sectors = bdev_write_zeroes_sectors(bdev, 0);
    >>
    >> if (max_write_zeroes_sectors == 0)
    >> return -EOPNOTSUPP;
    >> @@ -362,7 +362,7 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
    >> sector_t bs_mask;
    >> struct bio *bio;
    >> struct blk_plug plug;
    >> - bool try_write_zeroes = !!bdev_write_zeroes_sectors(bdev);
    >> + bool try_write_zeroes = !!bdev_write_zeroes_sectors(bdev, 0);
    >>
    >> bs_mask = (bdev_logical_block_size(bdev) >> 9) - 1;
    >> if ((sector | nr_sects) & bs_mask)
    >> @@ -391,7 +391,7 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
    >> try_write_zeroes = false;
    >> goto retry;
    >> }
    >> - if (!bdev_write_zeroes_sectors(bdev)) {
    >> + if (!bdev_write_zeroes_sectors(bdev, 0)) {
    >> /*
    >> * Zeroing offload support was indicated, but the
    >> * device reported ILLEGAL REQUEST (for some devices
    >> diff --git a/drivers/md/dm-kcopyd.c b/drivers/md/dm-kcopyd.c
    >> index 1bbe4a34ef4c..f1b8e7926dd4 100644
    >> --- a/drivers/md/dm-kcopyd.c
    >> +++ b/drivers/md/dm-kcopyd.c
    >> @@ -831,7 +831,7 @@ void dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from,
    >> */
    >> job->rw = REQ_OP_WRITE_ZEROES;
    >> for (i = 0; i < job->num_dests; i++)
    >> - if (!bdev_write_zeroes_sectors(job->dests[i].bdev)) {
    >> + if (!bdev_write_zeroes_sectors(job->dests[i].bdev, 0)) {
    >> job->rw = WRITE;
    >> break;
    >> }
    >> diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
    >> index 51ffd5c002de..73a63e197bf5 100644
    >> --- a/drivers/target/target_core_iblock.c
    >> +++ b/drivers/target/target_core_iblock.c
    >> @@ -117,7 +117,7 @@ static int iblock_configure_device(struct se_device *dev)
    >> * Enable write same emulation for IBLOCK and use 0xFFFF as
    >> * the smaller WRITE_SAME(10) only has a two-byte block count.
    >> */
    >> - max_write_zeroes_sectors = bdev_write_zeroes_sectors(bd);
    >> + max_write_zeroes_sectors = bdev_write_zeroes_sectors(bd, 0);
    >> if (max_write_zeroes_sectors)
    >> dev->dev_attrib.max_write_same_len = max_write_zeroes_sectors;
    >> else
    >> @@ -468,7 +468,7 @@ iblock_execute_write_same(struct se_cmd *cmd)
    >> return TCM_INVALID_CDB_FIELD;
    >> }
    >>
    >> - if (bdev_write_zeroes_sectors(bdev)) {
    >> + if (bdev_write_zeroes_sectors(bdev, 0)) {
    >> if (!iblock_execute_zero_out(bdev, cmd))
    >> return 0;
    >> }
    >> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
    >> index c45779f00cbd..4cd69552df9a 100644
    >> --- a/include/linux/blkdev.h
    >> +++ b/include/linux/blkdev.h
    >> @@ -1418,7 +1418,8 @@ static inline unsigned int bdev_write_same(struct block_device *bdev)
    >> return 0;
    >> }
    >>
    >> -static inline unsigned int bdev_write_zeroes_sectors(struct block_device *bdev)
    >> +static inline unsigned int bdev_write_zeroes_sectors(struct block_device *bdev,
    >> + unsigned int flags)
    >> {
    >> struct request_queue *q = bdev_get_queue(bdev);
    >>
    >>
    >>
    >

    \
     
     \ /
      Last update: 2020-01-20 12:13    [W:4.387 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site