All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Mick <dan.mick@inktank.com>
To: Gregory Farnum <greg@inktank.com>
Cc: Wido den Hollander <wido@42on.com>,
	"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: Re: rados_pool_list usage
Date: Wed, 27 Mar 2013 10:40:30 -0700	[thread overview]
Message-ID: <51532F0E.2070705@inktank.com> (raw)
In-Reply-To: <9B043BA89C1943F989AD6213B2361DD7@inktank.com>

It looks like it attempts to behave as documented (somewhat surprisingly 
and fragile-ly, IMO; I would have made it all-or-nothing and return 
nothing in buf if len is too small).

The Python binding retries/resizes until it can return them all.

What do you think is wrong, Wido?

On 03/27/2013 08:59 AM, Gregory Farnum wrote:
>
>
> On Wednesday, March 27, 2013 at 1:59 AM, Wido den Hollander wrote:
>
>> Hi,
>>
>> While working with rados_pool_list I stumbled upon what I think is a
>> documentation issue.
>>
>> librados.h tells me this:
>>
>> /**
>> * List objects in a pool
>> *
>> * Gets a list of pool names as NULL-terminated strings. The pool
>> * names will be placed in the supplied buffer one after another.
>> * After the last pool name, there will be two 0 bytes in a row.
>> *
>> * If len is too short to fit all the pool name entries we need, we
>> will fill
>> * as much as we can.
>> *
>> * @param cluster cluster handle
>> * @param buf output buffer
>> * @param len output buffer length
>> * @returns length of the buffer we would need to list all pools
>> */
>> int rados_pool_list(rados_t cluster, char *buf, size_t len);
>>
>> "If len is too short to fit all the pool name entries we need, we will
>> fill as much as we can."
>>
>>  From what I could remember it would return the length required if "len"
>> isn't long enough. Looking at the Python and PHP bindings (which I
>> wrote) it seems that is correct.
>>
>> It also says: "@returns length of the buffer we would need to list all
>> pools"
>>
>> Docs issue I guess?
> It certainly returns the amount of space needed; does it not also fill in the given buffer with however many pools it could? (It might not, but those sentences aren't contradictory in my mind.)
> -Greg
> Software Engineer #42 @ http://inktank.com | http://ceph.com
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

  reply	other threads:[~2013-03-27 17:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-27  8:59 rados_pool_list usage Wido den Hollander
2013-03-27 15:59 ` Gregory Farnum
2013-03-27 17:40   ` Dan Mick [this message]
2013-03-27 18:24     ` Wido den Hollander
2013-03-27 20:40       ` Dan Mick

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=51532F0E.2070705@inktank.com \
    --to=dan.mick@inktank.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=greg@inktank.com \
    --cc=wido@42on.com \
    /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.