diff for duplicates of <1490657999.7897.21.camel@sandisk.com> diff --git a/a/1.txt b/N1/1.txt index 6d576a8..765df64 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,46 +1,43 @@ On Mon, 2017-03-20 at 16:43 -0400, Christoph Hellwig wrote: > We're never touching the contents of the page, so save a memory > allocation for these cases. ->=20 +> > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > drivers/scsi/sd.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) ->=20 +> > diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c > index c18fe9ff1f8f..af632e350ab4 100644 > --- a/drivers/scsi/sd.c > +++ b/drivers/scsi/sd.c -> @@ -756,7 +756,7 @@ static int sd_setup_write_same16_cmnd(struct scsi_cmn= -d *cmd) -> u32 nr_sectors =3D blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9); -> u32 data_len =3D sdp->sector_size; -> =20 -> - rq->special_vec.bv_page =3D alloc_page(GFP_ATOMIC | __GFP_ZERO); -> + rq->special_vec.bv_page =3D ZERO_PAGE(0); +> @@ -756,7 +756,7 @@ static int sd_setup_write_same16_cmnd(struct scsi_cmnd *cmd) +> u32 nr_sectors = blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9); +> u32 data_len = sdp->sector_size; +> +> - rq->special_vec.bv_page = alloc_page(GFP_ATOMIC | __GFP_ZERO); +> + rq->special_vec.bv_page = ZERO_PAGE(0); > if (!rq->special_vec.bv_page) > return BLKPREP_DEFER; -> rq->special_vec.bv_offset =3D 0; -> @@ -785,7 +785,7 @@ static int sd_setup_write_same10_cmnd(struct scsi_cmn= -d *cmd, bool unmap) -> u32 nr_sectors =3D blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9); -> u32 data_len =3D sdp->sector_size; -> =20 -> - rq->special_vec.bv_page =3D alloc_page(GFP_ATOMIC | __GFP_ZERO); -> + rq->special_vec.bv_page =3D ZERO_PAGE(0); +> rq->special_vec.bv_offset = 0; +> @@ -785,7 +785,7 @@ static int sd_setup_write_same10_cmnd(struct scsi_cmnd *cmd, bool unmap) +> u32 nr_sectors = blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9); +> u32 data_len = sdp->sector_size; +> +> - rq->special_vec.bv_page = alloc_page(GFP_ATOMIC | __GFP_ZERO); +> + rq->special_vec.bv_page = ZERO_PAGE(0); > if (!rq->special_vec.bv_page) > return BLKPREP_DEFER; -> rq->special_vec.bv_offset =3D 0; -> @@ -1256,7 +1256,8 @@ static void sd_uninit_command(struct scsi_cmnd *SCp= -nt) +> rq->special_vec.bv_offset = 0; +> @@ -1256,7 +1256,8 @@ static void sd_uninit_command(struct scsi_cmnd *SCpnt) > { -> struct request *rq =3D SCpnt->request; -> =20 +> struct request *rq = SCpnt->request; +> > - if (rq->rq_flags & RQF_SPECIAL_PAYLOAD) > + if ((rq->rq_flags & RQF_SPECIAL_PAYLOAD) && -> + rq->special_vec.bv_page !=3D ZERO_PAGE(0)) +> + rq->special_vec.bv_page != ZERO_PAGE(0)) > __free_page(rq->special_vec.bv_page); -> =20 -> if (SCpnt->cmnd !=3D scsi_req(rq)->cmd) { +> +> if (SCpnt->cmnd != scsi_req(rq)->cmd) { Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> diff --git a/a/content_digest b/N1/content_digest index 8bdc2bd..33eeb6a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -15,48 +15,45 @@ "On Mon, 2017-03-20 at 16:43 -0400, Christoph Hellwig wrote:\n" "> We're never touching the contents of the page, so save a memory\n" "> allocation for these cases.\n" - ">=20\n" + "> \n" "> Signed-off-by: Christoph Hellwig <hch@lst.de>\n" "> ---\n" "> drivers/scsi/sd.c | 7 ++++---\n" "> 1 file changed, 4 insertions(+), 3 deletions(-)\n" - ">=20\n" + "> \n" "> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c\n" "> index c18fe9ff1f8f..af632e350ab4 100644\n" "> --- a/drivers/scsi/sd.c\n" "> +++ b/drivers/scsi/sd.c\n" - "> @@ -756,7 +756,7 @@ static int sd_setup_write_same16_cmnd(struct scsi_cmn=\n" - "d *cmd)\n" - "> \tu32 nr_sectors =3D blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9);\n" - "> \tu32 data_len =3D sdp->sector_size;\n" - "> =20\n" - "> -\trq->special_vec.bv_page =3D alloc_page(GFP_ATOMIC | __GFP_ZERO);\n" - "> +\trq->special_vec.bv_page =3D ZERO_PAGE(0);\n" + "> @@ -756,7 +756,7 @@ static int sd_setup_write_same16_cmnd(struct scsi_cmnd *cmd)\n" + "> \tu32 nr_sectors = blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9);\n" + "> \tu32 data_len = sdp->sector_size;\n" + "> \n" + "> -\trq->special_vec.bv_page = alloc_page(GFP_ATOMIC | __GFP_ZERO);\n" + "> +\trq->special_vec.bv_page = ZERO_PAGE(0);\n" "> \tif (!rq->special_vec.bv_page)\n" "> \t\treturn BLKPREP_DEFER;\n" - "> \trq->special_vec.bv_offset =3D 0;\n" - "> @@ -785,7 +785,7 @@ static int sd_setup_write_same10_cmnd(struct scsi_cmn=\n" - "d *cmd, bool unmap)\n" - "> \tu32 nr_sectors =3D blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9);\n" - "> \tu32 data_len =3D sdp->sector_size;\n" - "> =20\n" - "> -\trq->special_vec.bv_page =3D alloc_page(GFP_ATOMIC | __GFP_ZERO);\n" - "> +\trq->special_vec.bv_page =3D ZERO_PAGE(0);\n" + "> \trq->special_vec.bv_offset = 0;\n" + "> @@ -785,7 +785,7 @@ static int sd_setup_write_same10_cmnd(struct scsi_cmnd *cmd, bool unmap)\n" + "> \tu32 nr_sectors = blk_rq_sectors(rq) >> (ilog2(sdp->sector_size) - 9);\n" + "> \tu32 data_len = sdp->sector_size;\n" + "> \n" + "> -\trq->special_vec.bv_page = alloc_page(GFP_ATOMIC | __GFP_ZERO);\n" + "> +\trq->special_vec.bv_page = ZERO_PAGE(0);\n" "> \tif (!rq->special_vec.bv_page)\n" "> \t\treturn BLKPREP_DEFER;\n" - "> \trq->special_vec.bv_offset =3D 0;\n" - "> @@ -1256,7 +1256,8 @@ static void sd_uninit_command(struct scsi_cmnd *SCp=\n" - "nt)\n" + "> \trq->special_vec.bv_offset = 0;\n" + "> @@ -1256,7 +1256,8 @@ static void sd_uninit_command(struct scsi_cmnd *SCpnt)\n" "> {\n" - "> \tstruct request *rq =3D SCpnt->request;\n" - "> =20\n" + "> \tstruct request *rq = SCpnt->request;\n" + "> \n" "> -\tif (rq->rq_flags & RQF_SPECIAL_PAYLOAD)\n" "> +\tif ((rq->rq_flags & RQF_SPECIAL_PAYLOAD) &&\n" - "> +\t rq->special_vec.bv_page !=3D ZERO_PAGE(0))\n" + "> +\t rq->special_vec.bv_page != ZERO_PAGE(0))\n" "> \t\t__free_page(rq->special_vec.bv_page);\n" - "> =20\n" - "> \tif (SCpnt->cmnd !=3D scsi_req(rq)->cmd) {\n" + "> \n" + "> \tif (SCpnt->cmnd != scsi_req(rq)->cmd) {\n" "\n" Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> -00deed872bcf53088014dfceb173908db33a65bf21c3486c0a2b3a0c2933b95d +a25621a7b8d632c2d0eef4b933c648ca352eeaf4d87db83eb7d2a53ff2c4e748
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.