All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: Benny Halevy <bhalevy@panasas.com>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH 4/5] NFSv4.1: Add an initialisation callback for pNFS
Date: Fri, 10 Jun 2011 09:14:15 -0700	[thread overview]
Message-ID: <4DF242D7.4030607@panasas.com> (raw)
In-Reply-To: <4DF1A106.3070205@panasas.com>

On 06/09/2011 09:43 PM, Benny Halevy wrote:
> On 2011-06-10 00:28, Boaz Harrosh wrote:
>> On 06/09/2011 09:06 PM, Benny Halevy wrote:
>>> On 2011-06-09 22:53, Boaz Harrosh wrote:
>>>> On 06/09/2011 06:31 PM, Trond Myklebust wrote:
>>>> <snip>
>>>>> +void
>>>>> +pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
>>>>> +{
>>>>> +	BUG_ON(pgio->pg_lseg != NULL);
>>>>> +
>>>>> +	pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode,
>>>>> +					   req->wb_context,
>>>>> +					   req_offset(req),
>>>>> +					   req->wb_bytes,
>>>>> +					   IOMODE_READ,
>>>>> +					   GFP_KERNEL);
>>>>> +}
>>>>> +EXPORT_SYMBOL_GPL(pnfs_generic_pg_init_read);
>>>>> +
>>>>> +void
>>>>> +pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, struct nfs_page *req)
>>>>> +{
>>>>> +	BUG_ON(pgio->pg_lseg != NULL);
>>>>> +
>>>>> +	pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode,
>>>>> +					   req->wb_context,
>>>>> +					   req_offset(req),
>>>>> +					   req->wb_bytes,
>>>>> +					   IOMODE_RW,
>>>>> +					   GFP_NOFS);
>>>>> +}
>>>>> +EXPORT_SYMBOL_GPL(pnfs_generic_pg_init_write);
>>>>> +
>>>>
>>>> These two above are identical except the IOMODE_{READ,RW} variable.
>>>
>>> And the respective gfp flags...
>>>
>>
>> So is that "we should" or should-not?
>>
> 
> That doesn't make much sense when you've defined separate vectors
> for read and write.

So what the same function is set at both vectors, and the few callers (1)
passes a flag.

If you ask me we could do with one vector and a flag throughout this
stack. Actually don't make the flag as function parameter but as a member
of nfs_pageio_descriptor. For example in osd we want to know if we are
reading or writing in the raid5 case it produces different results.

> And in any case, since pg_init is not pnfs specific the caller shouldn't
> pass IOMODE_* values but rather a generic value that will require translation anyway.
> In this case I'd just consider using a common function to be called
> respectively from both methods:
> 
> static void
> pnfs_pg_update_layout(struct nfs_pageio_descriptor *pgio, struct nfs_page *req,
> 		      enum pnfs_iomode iomode, gfp_t gfp_flags)
> {
> 	BUG_ON(pgio->pg_lseg != NULL);
> 
> 	pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode,
> 					   req->wb_context,
> 					   req_offset(req),
> 					   req->wb_bytes,
> 					   iomode,
> 					   gfp_flags);
> }
> 

That makes it even more complicated for a do nothing function. We dont do
a different function for each different parameter. We can just do a 
"bool write" and unify the dam thing

Boaz

  reply	other threads:[~2011-06-10 16:14 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-10  1:30 [PATCH 1/5] NFSv4.1: Fix some issues with pnfs_generic_pg_test Trond Myklebust
2011-06-10  1:30 ` [PATCH 2/5] NFSv4.1: Fix an off-by-one error in pnfs_generic_pg_test Trond Myklebust
2011-06-10  1:31   ` [PATCH 3/5] NFS: Cleanup of the nfs_pageio code in preparation for a pnfs bugfix Trond Myklebust
2011-06-10  1:31     ` [PATCH 4/5] NFSv4.1: Add an initialisation callback for pNFS Trond Myklebust
2011-06-10  1:31       ` [PATCH 5/5] NFSv4.1: Fall back to ordinary i/o through the mds if we have no layout segment Trond Myklebust
2011-06-10  2:53       ` [PATCH 4/5] NFSv4.1: Add an initialisation callback for pNFS Boaz Harrosh
2011-06-10  4:06         ` Benny Halevy
2011-06-10  4:28           ` Boaz Harrosh
2011-06-10  4:43             ` Benny Halevy
2011-06-10 16:14               ` Boaz Harrosh [this message]
2011-06-10 16:28                 ` Trond Myklebust
2011-06-10 16:57                   ` Boaz Harrosh
2011-06-10 17:32                     ` Trond Myklebust
2011-06-10 19:29                       ` 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=4DF242D7.4030607@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=Trond.Myklebust@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.