Subtask #4007
closed
Added by Alex Elder over 11 years ago.
Updated about 11 years ago.
Description
In order to do layered writes we need to check whether
an object to be written exists before issuing the write.
This is done with a CEPH_OSD_OP_STAT osd operation, which
is not currently supported in the kernel osd client.
It wasn't really possible to know this up front but
it looks like this is trivial. I've basically
completed it but won't post it for review until
some more of this related code is done (to make sure
there's no more to add).
- Target version set to v0.58
This has turned out to be simple change. It was needed in
rbd as well, and I'll just add support to both under this
one issue.
- Status changed from New to Fix Under Review
A patch implementing this has been posted to the
ceph-devel mailing list for review.
[PATCH] libceph: allow STAT osd operations
- Status changed from Fix Under Review to 7
Josh has reviewed this. Testing again before committing
to be included in the testing branch.
- Status changed from 7 to Resolved
- Translation missing: en.field_remaining_hours set to 0.00
commit fbfab53966b279f9cdb36b96ffa1e22f042c96ff
Author: Alex Elder <elder@inktank.com>
Date: Fri Feb 8 09:55:48 2013 -0600
libceph: allow STAT osd operations
Add support for CEPH_OSD_OP_STAT operations in the osd client
and in rbd.
This operation sends no data to the osd; everything required is
encoded in identity of the target object.
The result will be ENOENT if the object doesn't exist. If it does
exist and no other error occurs the server returns the size and last
modification time of the target object as output data (in little
endian format). The size is a 64 bit unsigned and the time is
ceph_timespec structure (two unsigned 32-bit integers, representing
a seconds and nanoseconds value).
This resolves:
http://tracker.ceph.com/issues/4007
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Also available in: Atom
PDF