Re: Make libcephfs return error when unmounted?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Apr 11, 2012, at 3:39 PM, Greg Farnum wrote:

> On Wednesday, April 11, 2012 at 3:18 PM, Noah Watkins wrote:
>> One could pair the pointer with a magic value in a separate structure, but even libc doesn't go to these lengths to protect users...
> 
> At that point we'd run a pretty high risk of segfaulting when trying to deref and look at the magic value anyway. Nothing useful we can do here, I think. :/

Actually I meant:

struct container {
  int magic;
  struct ceph_mount_info *ptr;
};

ceph_chdir(struct container something);

Then, container.magic should equal INITIALIZED where INITIALIZED is "some value that is unlikely to ever be present at a memory location where container is allocated". Lol… overkill and not bullet-proof.

> On Wednesday, April 11, 2012 at 3:29 PM, Noah Watkins wrote:
> 
>> 
>> On Apr 11, 2012, at 11:32 AM, Greg Farnum wrote:
>> 
>>> On Wednesday, April 11, 2012 at 11:25 AM, Noah Watkins wrote:
>>>> 
>>>> On Apr 11, 2012, at 11:22 AM, Greg Farnum wrote:
>>>> 
>>>>> On Wednesday, April 11, 2012 at 11:12 AM, Noah Watkins wrote:
>>>>>> Hi all,
>>>>>> 
>>>>>> -Noah  
>>>>> I'm not sure where the "-1004" came from,
>>>> 
>>>> 
>>>> 
>>>> ceph_mount(..) seems to return some random error codes (-1000, 1001) already :)
>>> 
>>> <grumble> legacy undocumented grr </grumble>
>>> Let's try to use standard error codes where available, and (if we have to create our own) document any new ones with user-accessible names and explanations. I don't know which one is "best" but I see a lot of applicable choices when scanning errno-base et al.
>> 
>> 
>> 
>> If I'm choosing from from errno-base I might go with
>> 
>> #define ENXIO 6 /* No such device or address */
>> 
>> It's used:
>> 
>> osd/OSD.cc (http://OSD.cc)
>> void OSD::handle_misdirected_op(PG *pg, OpRequest *op)
>> …
>> reply_op_error(op, -ENXIO)
>> 
>> I'm wondering if you happen to know if this will be propagated back to the client? I'd be nice to have an exclusive not-mounted condition on the client side.
>> 
>> -Noah  
> Unfortunately it is. (I just grepped and see it's returned by both the MDS and the OSD, but it's not in Objecter et al so it's not filtered out anywhere.)
> 
> ENODEV isn't returned from anything; do you think that makes sense?
> -Greg
> 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux