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
next prev 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).