From: Alex Elder <elder@dreamhost.com>
To: Sage Weil <sage@newdream.net>
Cc: ceph-devel@vger.kernel.org
Subject: Re: [PATCH 3/5] ceph: make use of ceph file layout helpers
Date: Fri, 30 Mar 2012 14:55:45 -0500 [thread overview]
Message-ID: <4F760FC1.5010906@dreamhost.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1203152257080.13626@cobra.newdream.net>
On 03/16/2012 12:59 AM, Sage Weil wrote:
> On Mon, 12 Mar 2012, Alex Elder wrote:
>> There are helpers defined in "include/linux/ceph/osdmap.h" for
>> accessing the fields of an on-disk ceph file layout structure.
>> Use them--consistently--throughout the code.
>>
>> Also define CEPH_FILE_LAYOUT_PG_PREFERRED_NONE, to represent
>> symbolically the explicit "no preferred PG" value.
>>
>> Make a few casts explicit too (to make it more obvious it's
>> occuring). This produces some long lines, but they go away in an
>> upcoming patch.
>>
>> Signed-off-by: Alex Elder<elder@dreamhost.com>
A few comments below. I'm about to re-post this series.
. . .
>> diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
>> index 75960b1..bfd5b93 100644
>> --- a/fs/ceph/xattr.c
>> +++ b/fs/ceph/xattr.c
>> @@ -115,11 +115,12 @@ static size_t ceph_vxattrcb_file_layout(struct
>> ceph_inode_info *ci, char *val,
>>
>> ret = snprintf(val, size,
>> "chunk_bytes=%lld\nstripe_count=%lld\nobject_size=%lld\n",
>> - (unsigned long long)ceph_file_layout_su(&ci->i_layout),
>> + (unsigned long
>> long)ceph_file_layout_stripe_unit(&ci->i_layout),
>> (unsigned long
>> long)ceph_file_layout_stripe_count(&ci->i_layout),
>> (unsigned long
>> long)ceph_file_layout_object_size(&ci->i_layout));
>>
>> - if (ceph_file_layout_pg_preferred(&ci->i_layout)>= 0) {
>> + if (ceph_file_layout_pg_preferred(&ci->i_layout) !=
>> + CEPH_FILE_LAYOUT_PG_PREFERRED_NONE) {
>
> The function returns cpu order, #define is little endian
I will fix this--throughout. I'm going to define the constant
in CPU order instead (and fix the one place that depended on it
being in little endian order).
>> val += ret;
>> size -= ret;
>> ret += snprintf(val, size, "preferred_osd=%lld\n",
>> diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h
>> index 2645704..cf86032 100644
>> --- a/include/linux/ceph/ceph_fs.h
>> +++ b/include/linux/ceph/ceph_fs.h
. . .
>> @@ -1011,23 +1011,24 @@ int ceph_calc_object_layout(struct ceph_object_layout
>> *ol,
>> if (!pool)
>> return -EIO;
>> ps = ceph_str_hash(pool->v.object_hash, oid, strlen(oid));
>> - if (preferred>= 0) {
>> +
>> + if (preferred == CEPH_FILE_LAYOUT_PG_PREFERRED_NONE) {
>
> Here, too. I'd just stick with>= ...
No, I intentionally defined this constant to have a specific
meaning, and I don't want any sense that it is greater than
or less than something--just distinguished from all other
valid preferred PG values.
>
>> + num = le32_to_cpu(pool->v.pg_num);
>> + num_mask = pool->pg_num_mask;
>> + } else {
>> ps += preferred;
>> num = le32_to_cpu(pool->v.lpg_num);
>> num_mask = pool->lpg_num_mask;
>> - } else {
. . .
next prev parent reply other threads:[~2012-03-30 19:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-12 22:50 [PATCH 0/5] ceph: ceph file layout helper fixes Alex Elder
2012-03-12 22:57 ` [PATCH 1/5] ceph: move file layout helpers to ceph_fs.h Alex Elder
2012-03-12 22:57 ` [PATCH 2/5] ceph: make ceph file layout helpers take a pointer Alex Elder
2012-03-12 22:57 ` [PATCH 3/5] ceph: make use of ceph file layout helpers Alex Elder
2012-03-16 5:59 ` Sage Weil
2012-03-30 19:55 ` Alex Elder [this message]
2012-03-12 22:57 ` [PATCH 4/5] ceph: use 64-bit math in ceph_calc_file_object_mapping() Alex Elder
2012-03-16 6:17 ` Sage Weil
2012-03-16 13:25 ` Alex Elder
2012-03-12 22:57 ` [PATCH 5/5] ceph: fix up the types of the file layout helpers Alex Elder
2012-03-16 6:10 ` Sage Weil
2012-03-30 19:55 ` Alex Elder
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=4F760FC1.5010906@dreamhost.com \
--to=elder@dreamhost.com \
--cc=ceph-devel@vger.kernel.org \
--cc=sage@newdream.net \
/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.