]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: fix versioned object IO error 10820/head
authorYang Honggang <joseph.yang@xtaotech.com>
Tue, 4 Oct 2016 01:18:09 +0000 (09:18 +0800)
committerYang Honggang <joseph.yang@xtaotech.com>
Tue, 4 Oct 2016 01:18:09 +0000 (09:18 +0800)
commitd43b69e529328f73da6c29cd746557788a989ae0
tree57cdcba58739e2c6b0dea038418fe4cc38a47818
parent2209a8c68fb001545f293f5ba6ed1b9a77b5def9
rgw: fix versioned object IO error

    When accessing a copied destination object, its source object's instance ID
    information is needed, however it's missing now in the destination object's
    manifest.

    In order to fix this problem, we can record source object's version_id/instance
    into dest object's manifest(a new filed 'tail_instance' is added). When creating
    a new object(not copy), 'tail_instance' should be equal to its instance value.
    When copy/get a object, 'tail_instance' should always be used to get the right
    tail objects.

Fixes: http://tracker.ceph.com/issues/17111
Signed-off-by: Yang Honggang <joseph.yang@xtaotech.com>
src/rgw/rgw_dencoder.cc
src/rgw/rgw_json_enc.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h