From: Benny Halevy <benny@tonian.com>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: Benny Halevy <bhalevy@panasas.com>,
NFS list <linux-nfs@vger.kernel.org>,
open-osd <osd-dev@open-osd.org>
Subject: Re: [PATCH RFC] pnfsd-exofs: convert to v3.1 ORE
Date: Tue, 09 Aug 2011 23:22:56 +0300 [thread overview]
Message-ID: <4E419720.2080909@tonian.com> (raw)
In-Reply-To: <4E41881E.7020307@panasas.com>
On 2011-08-09 22:18, Boaz Harrosh wrote:
> Benny hi
>
> Please push your new tree with below patch and I will
> send you SQUASHMES ontop of your tree. This is because
> I'm having problems making a coherent tree, because
> current pnfs/pnfsd-exofs branch has conflicts when
> merging with 3.1-rc1. So your rebase should save me the
> resolving work.
Done. Thanks!
>
> Thanks
> Boaz
>
> On 08/09/2011 10:30 AM, Boaz Harrosh wrote:
>>
>> Sorry Benny about the merge conflicts I caused you
>> with the rushed push to Linus.
>>
>> I'll send you soon the proper fix, actually the
>> change needs to be deeper and the resulting code
>> is more simple.
>>
>> There are also a couple of more patches to export.c
>> that need to be added as well.
>>
>> I'll send it all today, I hope it's soon enough.
>> If not then below makes it compile I can prepare
>> the SQUASHMEs ontop of your tree.
>>
>> Thanks
>> Boaz
>>
>> On 08/09/2011 07:09 AM, Benny Halevy wrote:
>>> forwarding to osd-dev list...
>>>
>>> -------- Original Message --------
>>> Subject: [PATCH RFC] pnfsd-exofs: convert to v3.1 ORE
>>> Date: Tue, 09 Aug 2011 09:25:32 -0400
>>> From: Benny Halevy <bhalevy@tonian.com>
>>> To: Boaz Harrosh <bharrosh@panasas.com>
>>> CC: NFS list <linux-nfs@vger.kernel.org>
>>>
>>> Hi Boaz,
>>>
>>> Does the following patch makes sense in the new v3.1 ORE world?
>>> Can you please help test it?
>>> If it looks ok to you I'll just go ahead and release the rebased tree
>>> to linux-nfs.org and you can pull it from there.
>>>
>>> Thanks,
>>>
>>> Benny
>>>
>>> >From d89d93c733c8bc2984f1a918e522494558306f1d Mon Sep 17 00:00:00 2001
>>> From: Benny Halevy <bhalevy@tonian.com>
>>> Date: Tue, 9 Aug 2011 07:33:11 -0400
>>> Subject: [PATCH] pnfsd-exofs: convert to v3.1 ORE
>>>
>>> Signed-off-by: Benny Halevy <bhalevy@tonian.com>
>>> ---
>>> fs/exofs/export.c | 34 +++++++++++++++++++++++-----------
>>> 1 files changed, 23 insertions(+), 11 deletions(-)
>>>
>>> diff --git a/fs/exofs/export.c b/fs/exofs/export.c
>>> index 8281c85..07bc5e2 100644
>>> --- a/fs/exofs/export.c
>>> +++ b/fs/exofs/export.c
>>> @@ -73,6 +73,13 @@ err:
>>> return status;
>>> }
>>>
>>> +static unsigned exofs_layout_od_id(struct ore_layout *layout,
>>> + struct ore_components *comps,
>>> + osd_id obj_no, unsigned layout_index)
>>> +{
>>> + return (layout_index + obj_no * layout->mirrors_p1) % comps->numdevs;
>>> +}
>>> +
>>> static enum nfsstat4 exofs_layout_get(
>>> struct inode *inode,
>>> struct exp_xdr_stream *xdr,
>>> @@ -81,7 +88,8 @@ static enum nfsstat4 exofs_layout_get(
>>> {
>>> struct exofs_i_info *oi = exofs_i(inode);
>>> struct exofs_sb_info *sbi = inode->i_sb->s_fs_info;
>>> - struct exofs_layout *el = &sbi->layout;
>>> + struct ore_layout *el = &sbi->layout;
>>> + struct ore_components *ec = &sbi->comps;
>>> struct pnfs_osd_object_cred *creds = NULL;
>>> struct pnfs_osd_layout layout;
>>> __be32 *start;
>>> @@ -104,7 +112,7 @@ static enum nfsstat4 exofs_layout_get(
>>> /* Fill in a pnfs_osd_layout struct */
>>> layout.olo_map = sbi->data_map;
>>> layout.olo_comps_index = 0;
>>> - layout.olo_num_comps = el->s_numdevs;
>>> + layout.olo_num_comps = ec->numdevs;
>>> layout.olo_comps = creds;
>>>
>>> nfserr = pnfs_osd_xdr_encode_layout_hdr(xdr, &layout);
>>> @@ -112,16 +120,19 @@ static enum nfsstat4 exofs_layout_get(
>>> goto out;
>>>
>>> /* Encode layout components */
>>> - for (i = 0; i < el->s_numdevs; i++) {
>>> + for (i = 0; i < ec->numdevs; i++) {
>>> struct pnfs_osd_object_cred cred;
>>> - osd_id id = exofs_oi_objno(oi);
>>> - unsigned dev = exofs_layout_od_id(el, id, i);
>>> + struct osd_obj_id oid = {
>>> + .partition = sbi->one_comp.obj.partition,
>>> + .id = exofs_oi_objno(oi)
>>> + };
>>> + unsigned dev = exofs_layout_od_id(el, ec, oid.id, i);
>>>
>>> set_dev_id(&cred.oc_object_id.oid_device_id, args->lg_sbid,
>>> dev);
>>> - cred.oc_object_id.oid_partition_id = el->s_pid;
>>> - cred.oc_object_id.oid_object_id = id;
>>> - cred.oc_osd_version = osd_dev_is_ver1(el->s_ods[dev]) ?
>>> + cred.oc_object_id.oid_partition_id = oid.partition;
>>> + cred.oc_object_id.oid_object_id = oid.id;
>>> + cred.oc_osd_version = osd_dev_is_ver1(ec->ods[dev]) ?
>>> PNFS_OSD_VERSION_1 :
>>> PNFS_OSD_VERSION_2;
>>> cred.oc_cap_key_sec = PNFS_OSD_CAP_KEY_SEC_NONE;
>>> @@ -130,7 +141,7 @@ static enum nfsstat4 exofs_layout_get(
>>> cred.oc_cap_key.cred = NULL;
>>>
>>> cred.oc_cap.cred_len = OSD_CAP_LEN;
>>> - cred.oc_cap.cred = oi->i_cred;
>>> + exofs_make_credential(cred.oc_cap.cred, &oid);
>>> nfserr = pnfs_osd_xdr_encode_layout_cred(xdr, &cred);
>>> if (unlikely(nfserr))
>>> goto out;
>>> @@ -277,6 +288,7 @@ int exofs_get_device_info(struct super_block *sb, struct exp_xdr_stream *xdr,
>>> const struct nfsd4_pnfs_deviceid *devid)
>>> {
>>> struct exofs_sb_info *sbi = sb->s_fs_info;
>>> + struct ore_components *ec = &sbi->comps;
>>> struct pnfs_osd_deviceaddr devaddr;
>>> const struct osd_dev_info *odi;
>>> u64 devno = devid->devid;
>>> @@ -285,13 +297,13 @@ int exofs_get_device_info(struct super_block *sb, struct exp_xdr_stream *xdr,
>>>
>>> memset(&devaddr, 0, sizeof(devaddr));
>>>
>>> - if (unlikely(devno >= sbi->layout.s_numdevs)) {
>>> + if (unlikely(devno >= ec->numdevs)) {
>>> EXOFS_DBGMSG("Error: Device((%llx,%llx) does not exist\n",
>>> devid->sbid, devno);
>>> return -ENODEV;
>>> }
>>>
>>> - odi = osduld_device_info(sbi->layout.s_ods[devno]);
>>> + odi = osduld_device_info(ec->ods[devno]);
>>>
>>> devaddr.oda_systemid.len = odi->systemid_len;
>>> devaddr.oda_systemid.data = (void *)odi->systemid; /* !const cast */
>>
>> _______________________________________________
>> osd-dev mailing list
>> osd-dev@open-osd.org
>> http://mailman.open-osd.org/mailman/listinfo/osd-dev
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-08-09 20:23 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4E416E20.2010205@panasas.com>
2011-08-09 17:30 ` [PATCH RFC] pnfsd-exofs: convert to v3.1 ORE Boaz Harrosh
2011-08-09 19:18 ` Boaz Harrosh
2011-08-09 20:22 ` Benny Halevy [this message]
2011-08-09 20:37 ` Boaz Harrosh
2011-08-09 13:25 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=4E419720.2080909@tonian.com \
--to=benny@tonian.com \
--cc=bhalevy@panasas.com \
--cc=bharrosh@panasas.com \
--cc=linux-nfs@vger.kernel.org \
--cc=osd-dev@open-osd.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