Re: [PATCH 19/21] ceph: ioctls

From: Sage Weil
Date: Fri Oct 02 2009 - 11:55:33 EST


On Fri, 2 Oct 2009, Andi Kleen wrote:

> Sage Weil <sage@xxxxxxxxxxxx> writes:
> > +/*
> > + * Extract identity, address of the OSD and object storing a given
> > + * file offset.
> > + */
> > +struct ceph_ioctl_dataloc {
> > + __u64 file_offset; /* in+out: file offset */
> > + __u64 object_offset; /* out: offset in object */
> > + __u64 object_no; /* out: object # */
> > + __u64 object_size; /* out: object size */
> > + char object_name[64]; /* out: object name */
> > + __u64 block_offset; /* out: offset in block */
> > + __u64 block_size; /* out: block length */
> > + __s64 osd; /* out: osd # */
> > + struct sockaddr_in osd_addr; /* out: osd address */
>
> You'll have to revise that once you support IPv6. At least extend the structure
> better now? (_in is too small for IPv6)

Yes. I suspect an explicit

struct in6_addr osd_addr;
__be16 osd_port;

makes more sense. Then legacy IPv4 addresses can just be represented as
::ffff:1.2.3.4. That seems like the simplest route?

I should similarly update the struct ceph_entity_addr as well (it also
embeds a sockaddr_in). And/or embed that struct here.

sage
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/