diff --git a/storage/storage_service.c b/storage/storage_service.c index a62fceb..8a5aa3b 100644 --- a/storage/storage_service.c +++ b/storage/storage_service.c @@ -1665,7 +1665,7 @@ void storage_service_destroy() int storage_get_storage_path_index(int *store_path_index) { - int i; + int i, t; *store_path_index = g_store_path_index; if (g_store_path_mode == FDFS_STORE_PATH_LOAD_BALANCE) @@ -1687,7 +1687,12 @@ int storage_get_storage_path_index(int *store_path_index) [*store_path_index].total_mb, g_fdfs_store_paths.paths \ [*store_path_index].free_mb, g_avg_storage_reserved_mb)) { - for (i=0; i= g_fdfs_store_paths.count) + { + t = 0; + } + for (i=t; i \ path_free_mbs[write_path_index], avg_reserved_mb)) { - int i; - for (i=0; istore_path_count; i++) + int i, t; + t = write_path_index + 1; + if (t >= pStoreGroup->store_path_count) + { + t = 0; + } + for (i=t; istore_path_count; i++) { if (tracker_check_reserved_space_path( \ pStorageServer->path_total_mbs[i], \