librados: cap the rados_aio_*{write,append} buffer length

If the value of the len parameter is greater than UINT_MAX/2,
rados_aio_write, rados_aio_write_full and rados_aio_append will fail
with E2BIG.

For more information see 33501d242661a545211df43bf645398b492398ae

http://tracker.ceph.com/issues/9592 Fixes: #9592

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
librados: test s/E2BIG/TooBig/

Because E2BIG does not allow selection

./ceph_test_rados_api_aio --gtest_filter=LibRadosAio.E2BIG
Running main() from gtest_main.cc
Note: Google Test filter = LibRadosAio.E2BIG
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[  PASSED  ] 0 tests.

probably because it contains a number.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
librados: cap the IoCtxImpl::{aio_}*{write,append} buffer length

If the value of the len parameter is greater than UINT_MAX/2,
IoCtxImpl::aio_write, IoCtxImpl::aio_write_full, IoCtxImpl::aio_append,
IoCtxImpl::write, IoCtxImpl::append will fail with E2BIG.

IoCtxImpl::write_full is the exception because it does not have a
length argument to check.

For more information see 33501d242661a545211df43bf645398b492398ae

http://tracker.ceph.com/issues/9592 Fixes: #9592

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Merge pull request #2590 from dachary/wip-9592-librados-large-object

librados large object early check

Reviewed-by: Sage Weil <sage@redhat.com>