linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benny Halevy <benny@tonian.com>
To: linux-nfs@vger.kernel.org
Subject: [PATCH 09/13] pnfsd-block: use SECT_SIZE helper macros
Date: Sun,  4 Dec 2011 15:49:41 +0200	[thread overview]
Message-ID: <1323006581-13799-1-git-send-email-benny@tonian.com> (raw)
In-Reply-To: <4EDB79A9.2080109@tonian.com>

From: Benny Halevy <bhalevy@tonian.com>

Signed-off-by: Benny Halevy <bhalevy@tonian.com>
---
 fs/nfsd/bl_ops.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/fs/nfsd/bl_ops.c b/fs/nfsd/bl_ops.c
index 0c3a536..31e23c2 100644
--- a/fs/nfsd/bl_ops.c
+++ b/fs/nfsd/bl_ops.c
@@ -44,9 +44,15 @@
 #define bl_layout_hashval(id) \
 	((id) & BL_LAYOUT_HASH_MASK)
 
+#define BL_SECT_SHIFT		9
+#define BL_SECT_SIZE		(1 << BL_SECT_SHIFT)
+#define BL_SECT_MASK		(~(BL_SECT_SIZE - 1))
+#define BL_SECT_ALIGN(x)	ALIGN((x), BL_SECT_SIZE)
+
 #define BLL_F_END(p) ((p)->bll_foff + (p)->bll_len)
 #define BLL_S_END(p) ((p)->bll_soff + (p)->bll_len)
-#define _2SECTS(v) ((v) >> 9)
+#define _2SECTS(v) ((v) >> BL_SECT_SHIFT)
+#define _2BYTES(v) ((unsigned long long)(v) << BL_SECT_SHIFT)
 
 #ifndef READ32
 #define READ32(x)	(x) = ntohl(*p++)
@@ -274,9 +280,9 @@ static boolean_t extents_process(struct fiemap_extent_info *fei,
 	memset(bld, 0, sizeof (*bld));
 	bld->bld_type			= PNFS_BLOCK_VOLUME_STRIPE;
 	bld->u.stripe.bld_stripes	= res->u.stripe.num_stripes;
-	bld->u.stripe.bld_chunk_size	= res->u.stripe.stripe_size * 512LL;
+	bld->u.stripe.bld_chunk_size	= _2BYTES(res->u.stripe.stripe_size);
 	dprintk("%s: stripes %d, chunk_size %Lu\n", __func__,
-	    bld->u.stripe.bld_stripes, bld->u.stripe.bld_chunk_size / 512LL);
+	    bld->u.stripe.bld_stripes, _2SECTS(bld->u.stripe.bld_chunk_size));
 	
 	bld->u.stripe.bld_stripe_indexs = kmalloc(bld->u.stripe.bld_stripes *
 						  sizeof (int), GFP_KERNEL);
@@ -381,10 +387,10 @@ enum nfsstat4
 	     (res->lg_seg.iomode == IOMODE_READ)))
 		res->lg_seg.length = i->i_size - res->lg_seg.offset;
 	
-	adj = (res->lg_seg.offset & 511) ? res->lg_seg.offset & 511 : 0;
+	adj = res->lg_seg.offset & ~BL_SECT_MASK;
 	res->lg_seg.offset -= adj;
-	res->lg_seg.length = (res->lg_seg.length + adj + 511) & ~511;
-	
+	res->lg_seg.length = BL_SECT_ALIGN(res->lg_seg.length + adj);
+
 	if (res->lg_seg.iomode != IOMODE_READ)
 		if (i->i_op->fallocate(i, FALLOC_FL_KEEP_SIZE,
 				       res->lg_seg.offset, res->lg_seg.length))
@@ -679,7 +685,7 @@ enum nfsstat4
 	if (!bld)
 		return NULL;
 	
-	bld->u.simple.bld_offset = (res->u.sig.sector * 512LL) + res->u.sig.offset;
+	bld->u.simple.bld_offset = _2BYTES(res->u.sig.sector) + res->u.sig.offset;
 	bld->u.simple.bld_sig_len = res->u.sig.len;
 	bld->u.simple.bld_sig = kmalloc(res->u.sig.len, GFP_KERNEL);
 	if (!bld->u.simple.bld_sig)
@@ -727,12 +733,12 @@ enum nfsstat4
 	
 	bld->bld_devid.devid = devid;
 	bld->bld_index_loc	= my_loc;
-	bld->u.slice.bld_start	= res->u.slice.start * 512LL;
-	bld->u.slice.bld_len	= res->u.slice.length * 512LL;
+	bld->u.slice.bld_start	= _2BYTES(res->u.slice.start);
+	bld->u.slice.bld_len	= _2BYTES(res->u.slice.length);
 	bld->u.slice.bld_index	= simple_loc;
 
 	dprintk("%s: start %Lu, len %Lu\n", __func__,
-		bld->u.slice.bld_start / 512LL, bld->u.slice.bld_len / 512LL);
+		_2SECTS(bld->u.slice.bld_start), _2SECTS(bld->u.slice.bld_len));
 
 	kfree(res);
 	dprintk("<-- %s (rval %p)\n", __func__, bld);
-- 
1.7.6


  parent reply	other threads:[~2011-12-04 13:49 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-04 13:46 [PATCH 0/13] misc pnfsd patches Benny Halevy
2011-12-04 13:47 ` [PATCH 01/13] SQUASHME: pnfsd: add missing nfs4_unlock_state in nfs4_pnfs_return_layout Benny Halevy
2011-12-04 13:48 ` [PATCH 02/13] DEBUG: pnfsd: printouts Benny Halevy
2011-12-04 13:48 ` [PATCH 03/13] pnfsd-block: reverse boolean_t values so they make sense Benny Halevy
2011-12-06  2:10   ` J. Bruce Fields
2011-12-06 11:27     ` Benny Halevy
2011-12-06 11:56       ` J. Bruce Fields
2011-12-07 12:45         ` Benny Halevy
2011-12-04 13:48 ` [PATCH 04/13] pnfsd-block: mv include/linux/nfsd4_block.h include/linux/nfsd/ Benny Halevy
2011-12-06  2:12   ` J. Bruce Fields
2011-12-06 11:28     ` Benny Halevy
2011-12-04 13:48 ` [PATCH 05/13] pnfsd-block: do not override s_pnfs_op Benny Halevy
2011-12-04 13:48 ` [PATCH 06/13] pnfsd-block: change blr_lock to mutex Benny Halevy
2011-12-04 13:49 ` [PATCH 07/13] pnfsd-block: dprint fiemap rval Benny Halevy
2011-12-04 13:49 ` [PATCH 08/13] pnfsd-block: allow positive " Benny Halevy
2011-12-04 13:49 ` Benny Halevy [this message]
2011-12-04 13:49 ` [PATCH 10/13] pnfsd-block: undo dependence on spnfs Benny Halevy
2011-12-04 13:50 ` [PATCH 11/13] pnfsd-block: set the sbid part of the deviceid Benny Halevy
2011-12-04 13:50 ` [PATCH 12/13] DEBUG: pnfs: printouts Benny Halevy
2011-12-04 13:50 ` [PATCH 13/13] DEBUG: pnfsblock: add devid debug printouts Benny Halevy

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=1323006581-13799-1-git-send-email-benny@tonian.com \
    --to=benny@tonian.com \
    --cc=linux-nfs@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).