diff options
author | Simon Rettberg | 2017-10-11 16:00:00 +0200 |
---|---|---|
committer | Simon Rettberg | 2017-10-11 16:00:00 +0200 |
commit | 84b57000a176f676e2b70b29127455524e578f01 (patch) | |
tree | 04f2cd7ab4b867df1f1dce9fcec085c08eeafa4a /src/server/image.c | |
parent | [KERNEL] version check to support pointer to backing_dev_info in request_queue (diff) | |
download | dnbd3-84b57000a176f676e2b70b29127455524e578f01.tar.gz dnbd3-84b57000a176f676e2b70b29127455524e578f01.tar.xz dnbd3-84b57000a176f676e2b70b29127455524e578f01.zip |
[SERVER] rpc: Support querying storage size + available space
Diffstat (limited to 'src/server/image.c')
-rw-r--r-- | src/server/image.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/server/image.c b/src/server/image.c index 1504dae..36e0f0c 100644 --- a/src/server/image.c +++ b/src/server/image.c @@ -1612,13 +1612,13 @@ static bool image_calcBlockCrc32(const int fd, const int block, const uint64_t r static bool image_ensureDiskSpace(uint64_t size) { for ( int maxtries = 0; maxtries < 20; ++maxtries ) { - const int64_t available = file_freeDiskSpace( _basePath ); - if ( available == -1 ) { + uint64_t available; + if ( !file_freeDiskSpace( _basePath, NULL, &available ) ) { const int e = errno; logadd( LOG_WARNING, "Could not get free disk space (errno %d), will assume there is enough space left... ;-)\n", e ); return true; } - if ( (uint64_t)available > size ) return true; + if ( available > size ) return true; if ( dnbd3_serverUptime() < 10 * 3600 ) { logadd( LOG_INFO, "Only %dMiB free, %dMiB requested, but server uptime < 10 hours...", (int)(available / (1024ll * 1024ll)), (int)(size / (1024 * 1024)) ); |