Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp2447488imm; Sat, 23 Jun 2018 19:10:09 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJbDGYVE466/uEgCRq4RCN/E47hkVTteQgImZsTfTfxTowFoiF9NBxSgf7CQ9/SWm8wQEt3 X-Received: by 2002:a62:9d8c:: with SMTP id a12-v6mr81115pfk.223.1529806209754; Sat, 23 Jun 2018 19:10:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529806209; cv=none; d=google.com; s=arc-20160816; b=HZEDLxI8UhL/NtqeydwBmlxgFb9v0I6b77n5FKDaDUJv+mcBLlUQgeCQehIyqDNyBP sNwSOk83YYtVni0KoobHO+lY8t1GKQSQD1eA1Zv0gIQVewaQEvSetJThnhxgFzI8KW0w qKryH13vR+XRyQg5hhfT/0BSSu+jHNJeb6jvE/b0JgRQdofDmTSh+QCz8ZaTXkzGWNTN 5rOgO8Nbohl5G7rwD8LyrBPPyFHQqhHMMvtVYksU7FKJPZbkpLN66JC+1eMSFQweWSbd 3bBbvvhbiGCdEEgZxoKlAJR2AUXR3wKXqw3xzHa53VvSWY+tf4Ha1fFcr9Du6IQqqN1K F0lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:arc-authentication-results; bh=9juX133rcFeUu5UQ7fP4BriEijUiJg/LIbIUSnXoyaQ=; b=aT5/9ZnOJnMxXGJ/KoPFuifTeVKg7o78JntgvcLP6ryC7yBM9ezluHcRacGYz74iOZ c6/RyxqkDAl4AKCP8QGF1UgUZhC+ViFIkaDOX/yJNXOcrP/xepbXUzASB0WtZiFXiLCn H6UGXulYREEiA69JoZnpwvUrs1wQJDA9ehitqwczmB7is64sfT9waZ+Q1Ds3bl+04JE0 TmVHlvxyUNXU8KppamrZQA+84/7KtK6MoY1MYi7L/EGTx9yINsUXYekUMVn3ZXm5jgAo cC6cVdDG83i9MJo+ZdZxay0h2SiplgCVRMYyU+InOYUgVH1EsS6M8Ekqp6DbfAh4yh+/ 49Yg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w21-v6si10556011plp.199.2018.06.23.19.09.55; Sat, 23 Jun 2018 19:10:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752023AbeFXCJQ (ORCPT + 99 others); Sat, 23 Jun 2018 22:09:16 -0400 Received: from p3plsmtpa12-09.prod.phx3.secureserver.net ([68.178.252.238]:40977 "EHLO p3plsmtpa12-09.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751599AbeFXCJP (ORCPT ); Sat, 23 Jun 2018 22:09:15 -0400 Received: from [192.168.0.67] ([24.218.182.144]) by :SMTPAUTH: with ESMTPSA id WuSnfdVrA669vWuSofOVo5; Sat, 23 Jun 2018 19:09:14 -0700 Subject: Re: [Patch v2 06/15] CIFS: Introduce helper function to get page offset and length in smb_rqst To: longli@microsoft.com, Steve French , linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org References: <20180530194807.31657-1-longli@linuxonhyperv.com> <20180530194807.31657-7-longli@linuxonhyperv.com> From: Tom Talpey Message-ID: Date: Sat, 23 Jun 2018 22:09:14 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180530194807.31657-7-longli@linuxonhyperv.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfAHToKcuGOpd1cmEjLTuyHQNdtb2EFs1LTH2/vCbg3ohKcf7RtlMxGTs4vfgvsowtv9ly+rfJrwDJvEMRw0s6JmzsrBQR/2pWRc0x7C+8JyTH3dG71eO FAJPZsk7XjTRtUawJFlgb4Civvx0jk6PemWAFgEkE/5Q5q+M9yg+JA5l7qWyaVvIhDwIp/u5+1AvtcFc8qoYSylpbQJrR5V6TvHHoPOwelf63PHZATmu+hsv 7uYArM+9UlJNyS5Kfid6oqYXYaT+yv2RmZS39hHmFyygF4j6ZoPQyeQBpu5CHMPiNdMn1sujA5L8zp2ZnjAK/wk9gHqkjtzACdEIqBZ8t3Vr1EEyhB7/7kvq q/1YEVGY Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/30/2018 3:47 PM, Long Li wrote: > From: Long Li > > Introduce a function rqst_page_get_length to return the page offset and > length for a given page in smb_rqst. This function is to be used by > following patches. > > Signed-off-by: Long Li > --- > fs/cifs/cifsproto.h | 3 +++ > fs/cifs/misc.c | 17 +++++++++++++++++ > 2 files changed, 20 insertions(+) > > diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h > index 7933c5f..89dda14 100644 > --- a/fs/cifs/cifsproto.h > +++ b/fs/cifs/cifsproto.h > @@ -557,4 +557,7 @@ int cifs_alloc_hash(const char *name, struct crypto_shash **shash, > struct sdesc **sdesc); > void cifs_free_hash(struct crypto_shash **shash, struct sdesc **sdesc); > > +extern void rqst_page_get_length(struct smb_rqst *rqst, unsigned int page, > + unsigned int *len, unsigned int *offset); > + > #endif /* _CIFSPROTO_H */ > diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c > index 96849b5..e951417 100644 > --- a/fs/cifs/misc.c > +++ b/fs/cifs/misc.c > @@ -905,3 +905,20 @@ cifs_free_hash(struct crypto_shash **shash, struct sdesc **sdesc) > crypto_free_shash(*shash); > *shash = NULL; > } > + > +/** > + * rqst_page_get_length - obtain the length and offset for a page in smb_rqst > + * Input: rqst - a smb_rqst, page - a page index for rqst > + * Output: *len - the length for this page, *offset - the offset for this page > + */ > +void rqst_page_get_length(struct smb_rqst *rqst, unsigned int page, > + unsigned int *len, unsigned int *offset) > +{ > + *len = rqst->rq_pagesz; > + *offset = (page == 0) ? rqst->rq_offset : 0; Really? Page 0 always has a zero offset?? > + > + if (rqst->rq_npages == 1 || page == rqst->rq_npages-1) > + *len = rqst->rq_tailsz; > + else if (page == 0) > + *len = rqst->rq_pagesz - rqst->rq_offset; > +} > This subroutine does what patch 5 does inline. Why not push this patch up in the sequence and use the helper? Tom.