diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2018-01-16 12:15:02 +0100 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2018-04-02 10:12:38 +0200 |
commit | db2196a58939c0b75b9b7ea5ab1fec4081d48661 (patch) | |
tree | 55b84f92cd7c50aabe163160433c730db83e3160 /fs/ceph | |
parent | 24f1df60ce943aee107b3cb99b37a0152c9dd47a (diff) | |
download | talos-op-linux-db2196a58939c0b75b9b7ea5ab1fec4081d48661.tar.gz talos-op-linux-db2196a58939c0b75b9b7ea5ab1fec4081d48661.zip |
libceph: eliminate overflows in ceph_calc_file_object_mapping()
bl, stripeno and objsetno should be u64 -- otherwise large enough files
get corrupted. How large depends on file layout:
- 4M-objects layout (default): any file over 16P
- 64K-objects layout (smallest possible object size): any file over 512T
Only CephFS is affected, rbd doesn't use ceph_calc_file_object_mapping()
yet. Fortunately, CephFS has a max_file_size configurable, the default
for which is way below both of the above numbers.
Reimplement the logic from scratch with no layout validation -- it's
done on the MDS side.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Diffstat (limited to 'fs/ceph')
0 files changed, 0 insertions, 0 deletions