All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: andros@netapp.com
Cc: bhalevy@panasas.com, linux-nfs@vger.kernel.org
Subject: Re: [PATCH 0/2] pnfs-submit Re-initialize pnfs_layout_type when segs list is empty
Date: Mon, 12 Jul 2010 18:48:47 +0300	[thread overview]
Message-ID: <4C3B395F.8080903@panasas.com> (raw)
In-Reply-To: <1278693571-3328-1-git-send-email-andros@netapp.com>

On 07/09/2010 07:39 PM, andros@netapp.com wrote:
> e keep the nfs_inode->layout when the segs list is empty, and we remove it
> from the nfs_client cl_layouts list, but we fail to reset the other fields.
> Re-initialize the layout (all except for the refcount) so that the next
> layoutget with potentially new deviceid.... sets the layout fields.
> 
> Note: API change to layoutdriver_io_operations free_layout
> 
> 0001-SQUASHME-pnfs-submit-reinitialize-pnfs_layout_type.patch
> 0002-SQUASHME-pnfs-submit-file-layout-free_layout-init_on.patch
> 
> Tested
> 
> CONFIG_V4_I set:
> Connectathon tests pass against GFS2/pNFS and pyNFS file layout servers. Both
> return-on-close and not return-on-close tested.
> 
> CONFIG_V4_I not set:
> NFSv4.0 mount passes Connectathon tests.
> 
> -->Andy
> 

Andy sorry to get on your case. But I hate it. It is an hack that takes
us back not forward. (Code less clean more obscure)

For starts don't save me a vector please. The two functions are unrelated
see your last patch 0002 there is no common code and a return in the middle
of an if() which should trigger an alarm for a bad API.

Second if at all, then the costume is to initialize on re-use not on end
of previous operation. (Clearer intentions, might not be reused, etc...)

3rd, if you'd follow my original proposal you'll see that this hack is not
needed.

If these patches fix an actual bug you've been hitting, could you just fix
the particular field in question that needs zeroing. And we can see how to
solve it better.

Thanks
Boaz

  parent reply	other threads:[~2010-07-12 15:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-09 16:39 [PATCH 0/2] pnfs-submit Re-initialize pnfs_layout_type when segs list is empty andros
2010-07-09 16:39 ` [PATCH 1/2] SQUASHME pnfs-submit: reinitialize pnfs_layout_type andros
2010-07-09 16:39   ` [PATCH 2/2] SQUASHME pnfs-submit file layout free_layout init_only andros
2010-07-12 16:10   ` [PATCH 1/2] SQUASHME pnfs-submit: reinitialize pnfs_layout_type Benny Halevy
2010-07-12 15:48 ` Boaz Harrosh [this message]
2010-07-12 16:36   ` [PATCH 0/2] pnfs-submit Re-initialize pnfs_layout_type when segs list is empty William A. (Andy) Adamson
     [not found]     ` <AANLkTinjab9XPUjRe2knYyRQg8j9pmc9Gdk_fRkGGfY2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-12 17:07       ` Boaz Harrosh
2010-07-12 18:07         ` William A. (Andy) Adamson
     [not found]           ` <AANLkTilSPhZ1aBtU1taI8UnKQ9CddgaK3oQ1xoSMOuh3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-13  9:02             ` Boaz Harrosh
2010-07-13 14:06               ` 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=4C3B395F.8080903@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=andros@netapp.com \
    --cc=bhalevy@panasas.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 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.