On Sun, Aug 8, 2010 at 8:04 PM, Xiaoguang Liu <syslxg@xxxxxxxxx> wrote: > I tried both ways. none of them worked. > > BTW, Yehuda said the new class should be v1.2. why I saw 1.0.0 in the > error message: > > Loading class: /usr/lib64/rados-classes/libcls_rbd.so.1.0.0: Error: > Could not detect class name. > The 1.0.0 is the shared object version number, not really related to the class version. This should work: $ ceph class add -i /usr/lib64/rados-classes/libcls_rbd.so.1.0.0 rbd 1.2 x86-64 We do need to find some better solution for cases where the binaries are stripped. Currently we avoid stripping all the symbols that have __cls inside and we encode the class name and version there, e.g.: 0000000000209734 B __cls_name__rbd 0000000000209730 B __cls_ver__1_2 Then we run the cclsinfo script on the binary and it gets the class name and version out of the shared object, along with the architecture it was compiled on. We'd like to be able to keep all the different classes for the different architecture in the same place. Probably another solution that doesn't require all this hackery will just hold the class name and version in the shared object filename and we'll put the shared objects under a subdir per architecture. Yehuda -- 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