All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: andros@netapp.com
Cc: trond.myklebust@netapp.com, linux-nfs@vger.kernel.org,
	Fred Isaman <iisaman@netapp.com>,
	Andy Adamson <andros@citi.umich.edu>,
	Dean Hildebrand <dhildeb@us.ibm.com>,
	Marc Eshel <eshel@almaden.ibm.com>, Mike Sager <sager@netapp.com>,
	Oleg Drokin <green@linuxhacker.ru>, Tao Guo <guotao@nrchpc.ac.cn>,
	Tigran Mkrtchyan <tigran@anahit.desy.de>,
	Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>,
	Benny Halevy <bhalevy@panasas.com>
Subject: Re: [PATCH 13/16] pnfs: wave 3: filelayout i/o helpers
Date: Tue, 15 Feb 2011 04:31:13 -0500	[thread overview]
Message-ID: <20110215093113.GC29871@infradead.org> (raw)
In-Reply-To: <1297711116-3139-14-git-send-email-andros@netapp.com>

On Mon, Feb 14, 2011 at 02:18:33PM -0500, andros@netapp.com wrote:
> +static loff_t
> +filelayout_get_dserver_offset(struct pnfs_layout_segment *lseg, loff_t offset)
> +{
> +	struct nfs4_filelayout_segment *flseg = FILELAYOUT_LSEG(lseg);
> +
> +	switch (flseg->stripe_type) {
> +	case STRIPE_SPARSE:
> +		return offset;
> +
> +	case STRIPE_DENSE:
> +	{
> +		u32 stripe_width;
> +		u64 tmp, off;
> +		u32 unit = flseg->stripe_unit;
> +
> +		stripe_width = unit * flseg->dsaddr->stripe_count;
> +		tmp = off = offset - flseg->pattern_offset;
> +		do_div(tmp, stripe_width);
> +		return tmp * unit + do_div(off, unit);

For readability's sake I'd split this out into a helper:

static loff_t
filelayout_get_dense_offset(struct nfs4_filelayout_segment *flseg,
			    loff_t offset)
{
	u32 stripe_width = flseg->stripe_unit * flseg->dsaddr->stripe_count;
	u64 tmp;

	offset -= flseg->pattern_offset

	tmp = off;
	do_div(tmp, stripe_width);

	return tmp * unit + do_div(offset, flseg->stripe_unit);
}

...


	case STRIPE_DENSE:
		return filelayout_get_dense_offset(flset, offset);


  reply	other threads:[~2011-02-15  9:31 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-14 19:18 [PATCH 0/16] pnfs wave 3 submission andros
2011-02-14 19:18 ` [PATCH 01/16] NFS remove unnecessary CONFIG_NFS_V4 from nfs_read_data andros
2011-02-15  9:16   ` Christoph Hellwig
2011-02-15  9:24     ` Taousif_Ansari-G5Y5guI6XLZWk0Htik3J/w
2011-02-15 14:51     ` Andy Adamson
2011-02-14 19:18 ` [PATCH 02/16] NFS put_layout_hdr can remove nfsi->layout andros
2011-02-14 19:18 ` [PATCH 03/16] NFS move nfs_client initialization into nfs_get_client andros
2011-02-16  2:58   ` Benny Halevy
2011-02-16 16:00     ` Andy Adamson
2011-02-14 19:18 ` [PATCH 04/16] pnfs: wave 3: send zero stateid seqid on v4.1 i/o andros
2011-02-14 19:18 ` [PATCH 05/16] pnfs: wave 3: new flag for state renewal check andros
2011-02-14 19:18 ` [PATCH 06/16] pnfs: wave 3: new flag for lease time check andros
2011-02-14 19:18 ` [PATCH 07/16] pnfs: wave 3: add MDS mount DS only check andros
2011-02-14 19:18 ` [PATCH 08/16] pnfs: wave 3: lseg refcounting andros
2011-02-15  9:25   ` Christoph Hellwig
2011-02-15 14:48     ` Fred Isaman
2011-02-15 14:58       ` Christoph Hellwig
2011-02-15 14:59         ` Benny Halevy
2011-02-15 15:06           ` Christoph Hellwig
2011-02-15 15:11             ` Fred Isaman
2011-02-15 16:02             ` Christoph Hellwig
2011-02-15 16:37               ` William A. (Andy) Adamson
2011-02-15 19:17                 ` Andy Adamson
2011-02-15 19:29                   ` Benny Halevy
2011-02-15 19:30                     ` Andy Adamson
2011-02-15 15:07         ` Fred Isaman
2011-02-14 19:18 ` [PATCH 09/16] pnfs: wave 3: shift pnfs_update_layout locations andros
2011-02-14 23:14   ` Trond Myklebust
2011-02-15 14:41     ` Fred Isaman
2011-02-15 15:00       ` Trond Myklebust
2011-02-16  3:11       ` Benny Halevy
2011-02-14 19:18 ` [PATCH 10/16] pnfs: wave 3: coelesce across layout stripes andros
2011-02-14 23:42   ` Trond Myklebust
2011-02-15 14:43     ` William A. (Andy) Adamson
2011-02-15 15:03       ` Trond Myklebust
     [not found]         ` <1297782220.10103.13.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-02-15 15:10           ` Andy Adamson
2011-02-14 19:18 ` [PATCH 11/16] pnfs: wave 3: generic read andros
2011-02-14 23:36   ` Trond Myklebust
2011-02-15 14:47     ` Andy Adamson
2011-02-16  3:16   ` Benny Halevy
2011-02-16 14:53     ` Andy Adamson
2011-02-16 15:09       ` Trond Myklebust
2011-02-16 15:52         ` Benny Halevy
2011-02-16 15:56           ` Andy Adamson
2011-02-16 15:57           ` Sager, Mike
2011-02-14 19:18 ` [PATCH 12/16] pnfs: wave 3: data server connection andros
2011-02-14 19:18 ` [PATCH 13/16] pnfs: wave 3: filelayout i/o helpers andros
2011-02-15  9:31   ` Christoph Hellwig [this message]
2011-02-15 15:12     ` Andy Adamson
2011-02-14 19:18 ` [PATCH 14/16] pnfs: wave 3: filelayout read andros
2011-02-14 19:18 ` [PATCH 15/16] pnfs: wave 3: filelayout async error handler andros
2011-02-14 19:18 ` [PATCH 16/16] pnfs: wave 3: turn off pNFS on ds connection failure andros
2011-02-14 22:39 ` [PATCH 0/16] pnfs wave 3 submission Trond Myklebust
2011-02-15 14:44   ` William A. (Andy) Adamson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110215093113.GC29871@infradead.org \
    --to=hch@infradead.org \
    --cc=andros@citi.umich.edu \
    --cc=andros@netapp.com \
    --cc=bhalevy@panasas.com \
    --cc=dhildeb@us.ibm.com \
    --cc=eshel@almaden.ibm.com \
    --cc=green@linuxhacker.ru \
    --cc=guotao@nrchpc.ac.cn \
    --cc=iisaman@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=sager@netapp.com \
    --cc=tigran.mkrtchyan@desy.de \
    --cc=tigran@anahit.desy.de \
    --cc=trond.myklebust@netapp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.