file: fix file::size() signature

file::size() uses size_t as an alias for uint64_t, but it isn't.  Use the
right type.
This commit is contained in:
Avi Kivity
2015-07-09 15:07:58 +03:00
parent e96d07d614
commit ea67ca03af
2 changed files with 9 additions and 9 deletions

View File

@@ -73,7 +73,7 @@ public:
virtual future<> truncate(uint64_t length) = 0;
virtual future<> discard(uint64_t offset, uint64_t length) = 0;
virtual future<> allocate(uint64_t position, uint64_t length) = 0;
virtual future<size_t> size(void) = 0;
virtual future<uint64_t> size(void) = 0;
virtual future<> close() = 0;
virtual subscription<directory_entry> list_directory(std::function<future<> (directory_entry de)> next) = 0;
@@ -307,7 +307,7 @@ public:
}
/// Gets the file size.
future<size_t> size() {
future<uint64_t> size() {
return _file_impl->size();
}

View File

@@ -706,13 +706,13 @@ blockdev_file_impl::allocate(uint64_t position, uint64_t length) {
return make_ready_future<>();
}
future<size_t>
future<uint64_t>
posix_file_impl::size(void) {
auto r = ::lseek(_fd, 0, SEEK_END);
if (r == -1) {
return make_exception_future<size_t>(std::system_error(errno, std::system_category()));
return make_exception_future<uint64_t>(std::system_error(errno, std::system_category()));
}
return make_ready_future<size_t>(r);
return make_ready_future<uint64_t>(r);
}
future<>
@@ -725,15 +725,15 @@ posix_file_impl::close() {
});
}
future<size_t>
future<uint64_t>
blockdev_file_impl::size(void) {
return engine()._thread_pool.submit<syscall_result_extra<size_t>>([this] {
size_t size;
uint64_t size;
int ret = ::ioctl(_fd, BLKGETSIZE64, &size);
return wrap_syscall(ret, size);
}).then([] (syscall_result_extra<size_t> ret) {
}).then([] (syscall_result_extra<uint64_t> ret) {
ret.throw_if_error();
return make_ready_future<size_t>(ret.extra);
return make_ready_future<uint64_t>(ret.extra);
});
}