{"push_id":787485022,"size":1,"distinct_size":1,"ref":"refs/heads/wip-32bits-ceph-fuse","head":"24b20a8fcdbb588a8c2b7e0d66e82260e6158343","before":"06cdef573f6248d7830fae8c8f1c07c507891652","commits":[{"sha":"24b20a8fcdbb588a8c2b7e0d66e82260e6158343","author":{"email":"5a3288024fcad83740d827e0862f4c1e6f28e7bf@redhat.com","name":"Yan, Zheng"},"message":"client: use faked inode number when sizeof(ino_t) < 8\n\nCephfs uses 48-bits inode number. When ino_t is 32-bits, the upper 16\nbits of inode number gets lost for stat(2) and readdir(2).\n\n32-bits ino_t is even more problematic with ceph-fuse. In ceph-fuse\ncase, we need to encode both cephfs inode number and snapid into\nfuse_ino_t. 32-bits are clearly not enough.\n\nThe fix is assign a 32-bits faked inode number to each cached inode.\nFaked inode numbers are used for stat(2), readdir(2) and fuse. We\nmaintain a data structure that maps faked inode number to cephfs's\nvinodeno_t. So we can find inode by the 32-bits faked inode number.\nThis appoach should work as long as there are less than 4 billions\ncached inodes.\n\nSigned-off-by: Yan, Zheng <zyan@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ukernel/ceph/commits/24b20a8fcdbb588a8c2b7e0d66e82260e6158343"}]}