Bug #2328
osd: mapext/fiemap doesn't work for small extents
% Done:
0%
Source:
Development
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
If you query the mapping for an extent that inside a larger allocated extent, the fiemap ioctl won't tell you:
2012-04-21 13:24:19.941205 7f1b128ae910 15 filestore(dev/osd0) fiemap 2.4_head/42276e54/rb.0.6.000000000006/head 0~18446744073709551615 2012-04-21 13:24:19.941507 7f1b128ae910 10 filestore(dev/osd0) fiemap 2.4_head/42276e54/rb.0.6.000000000006/head 0~18446744073709551615 = 0 num extents=2 2012-04-21 13:28:00.666740 7f1b130af910 15 filestore(dev/osd0) fiemap 2.4_head/42276e54/rb.0.6.000000000006/head 1060199~383900 2012-04-21 13:28:00.666985 7f1b130af910 10 filestore(dev/osd0) fiemap 2.4_head/42276e54/rb.0.6.000000000006/head 1060199~383900 = 0 num extents=2 2012-04-21 13:28:54.826320 7f1b128ae910 15 filestore(dev/osd0) fiemap 2.4_head/42276e54/rb.0.6.000000000006/head 1060199~38390 2012-04-21 13:28:54.826526 7f1b128ae910 10 filestore(dev/osd0) fiemap 2.4_head/42276e54/rb.0.6.000000000006/head 1060199~38390 = 0 num extents=0
actual layout is
fa000 e000 146000 c000
in decimal that is
1024000~57344 1335296~49152
fs is ext4, 2.6.34-rc5. maybe this is an old kernel bug? will try to reproduce on a newer kernel.
History
#1 Updated by Sage Weil almost 12 years ago
this works on a newer kernel (3.2.0-2-amd64).
should we check kernel versions in filestore and magically disable fiemap if it is old?
#2 Updated by Sage Weil almost 12 years ago
- Status changed from 12 to Resolved
see c8377e466caace018eea06c1739265111ce72c48 for a kludge that detects the bug and disabled fiemap.