Re: [RFC PATCH 01/09] Introduce offset for the 1st page in data transfer structures

From: Steve French
Date: Fri May 18 2018 - 01:41:40 EST


merged into cifs-2.6.git for-next

On Thu, May 17, 2018 at 7:22 PM, Long Li <longli@xxxxxxxxxxxxxxxxx> wrote:
> From: Long Li <longli@xxxxxxxxxxxxx>
>
> Currently CIFS allocates its own pages for data transfer, they don't need offset
> since it's always 0 in the 1st page.
>
> Direct data transfer needs to define an offset because user-data may not start
> on the page boundary
>
> Signed-off-by: Long Li <longli@xxxxxxxxxxxxx>
> ---
> fs/cifs/cifsglob.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
> index cb950a5..a51855c 100644
> --- a/fs/cifs/cifsglob.h
> +++ b/fs/cifs/cifsglob.h
> @@ -176,6 +176,7 @@ struct smb_rqst {
> struct kvec *rq_iov; /* array of kvecs */
> unsigned int rq_nvec; /* number of kvecs in array */
> struct page **rq_pages; /* pointer to array of page ptrs */
> + unsigned int rq_offset; /* the offset to the 1st page */
> unsigned int rq_npages; /* number pages in array */
> unsigned int rq_pagesz; /* page size to use */
> unsigned int rq_tailsz; /* length of last page */
> @@ -1167,8 +1168,10 @@ struct cifs_readdata {
> struct kvec iov[2];
> #ifdef CONFIG_CIFS_SMB_DIRECT
> struct smbd_mr *mr;
> + struct page **direct_pages;
> #endif
> unsigned int pagesz;
> + unsigned int page_offset;
> unsigned int tailsz;
> unsigned int credits;
> unsigned int nr_pages;
> @@ -1192,8 +1195,10 @@ struct cifs_writedata {
> int result;
> #ifdef CONFIG_CIFS_SMB_DIRECT
> struct smbd_mr *mr;
> + struct page **direct_pages;
> #endif
> unsigned int pagesz;
> + unsigned int page_offset;
> unsigned int tailsz;
> unsigned int credits;
> unsigned int nr_pages;
> --
> 2.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html



--
Thanks,

Steve