summaryrefslogtreecommitdiffstats
path: root/src/server/image.c
diff options
context:
space:
mode:
authorSimon Rettberg2017-10-11 16:00:00 +0200
committerSimon Rettberg2017-10-11 16:00:00 +0200
commit84b57000a176f676e2b70b29127455524e578f01 (patch)
tree04f2cd7ab4b867df1f1dce9fcec085c08eeafa4a /src/server/image.c
parent[KERNEL] version check to support pointer to backing_dev_info in request_queue (diff)
downloaddnbd3-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.c6
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)) );