@@ -65,7 +65,6 @@ static CURLMcode __curl_multi_socket_action(CURLM *multi_handle,
#define CURL_TIMEOUT_MAX 10000
#define CURL_BLOCK_OPT_URL "url"
-#define CURL_BLOCK_OPT_READAHEAD "readahead"
#define CURL_BLOCK_OPT_SSLVERIFY "sslverify"
#define CURL_BLOCK_OPT_TIMEOUT "timeout"
#define CURL_BLOCK_OPT_COOKIE "cookie"
@@ -76,7 +75,6 @@ static CURLMcode __curl_multi_socket_action(CURLM *multi_handle,
#define CURL_BLOCK_OPT_PROXY_PASSWORD_SECRET "proxy-password-secret"
#define CURL_BLOCK_OPT_OFFSET "offset"
-#define CURL_BLOCK_OPT_READAHEAD_DEFAULT (256 * 1024)
#define CURL_BLOCK_OPT_SSLVERIFY_DEFAULT true
#define CURL_BLOCK_OPT_TIMEOUT_DEFAULT 5
@@ -124,7 +122,6 @@ typedef struct BDRVCURLState {
uint64_t len;
CURLState states[CURL_NUM_STATES];
char *url;
- size_t readahead_size;
bool sslverify;
uint64_t timeout;
char *cookie;
@@ -615,11 +612,6 @@ static QemuOptsList runtime_opts = {
.type = QEMU_OPT_STRING,
.help = "URL to open",
},
- {
- .name = CURL_BLOCK_OPT_READAHEAD,
- .type = QEMU_OPT_SIZE,
- .help = "Readahead size",
- },
{
.name = CURL_BLOCK_OPT_SSLVERIFY,
.type = QEMU_OPT_BOOL,
@@ -705,14 +697,6 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags,
goto out_noclean;
}
- s->readahead_size = qemu_opt_get_size(opts, CURL_BLOCK_OPT_READAHEAD,
- CURL_BLOCK_OPT_READAHEAD_DEFAULT);
- if ((s->readahead_size & 0x1ff) != 0) {
- error_setg(errp, "HTTP_READAHEAD_SIZE %zd is not a multiple of 512",
- s->readahead_size);
- goto out_noclean;
- }
-
s->timeout = qemu_opt_get_number(opts, CURL_BLOCK_OPT_TIMEOUT,
CURL_BLOCK_OPT_TIMEOUT_DEFAULT);
if (s->timeout > CURL_TIMEOUT_MAX) {
@@ -898,7 +882,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CURLAIOCB *acb)
state->buf_off = 0;
g_free(state->orig_buf);
state->buf_start = start;
- state->buf_len = MIN(acb->end + s->readahead_size, s->len - start);
+ state->buf_len = MIN(acb->end, s->len - start);
end = start + state->buf_len - 1;
state->orig_buf = g_try_malloc(state->buf_len);
if (state->buf_len && state->orig_buf == NULL) {
@@ -971,8 +955,9 @@ static void curl_refresh_filename(BlockDriverState *bs)
{
BDRVCURLState *s = bs->opaque;
- /* "readahead" and "timeout" do not change the guest-visible data,
- * so ignore them */
+ /*
+ * "timeout" does not change the guest-visible data, so ignore it.
+ */
if (s->sslverify != CURL_BLOCK_OPT_SSLVERIFY_DEFAULT ||
s->cookie || s->username || s->password || s->proxyusername ||
s->proxypassword)
@@ -174,13 +174,6 @@ These are specified using a special URL syntax.
``url``
The full URL when passing options to the driver explicitly.
- ``readahead``
- The amount of data to read ahead with each range request to the
- remote server. This value may optionally have the suffix 'T', 'G',
- 'M', 'K', 'k' or 'b'. If it does not have a suffix, it will be
- assumed to be in bytes. The value must be a multiple of 512 bytes.
- It defaults to 256k.
-
``sslverify``
Whether to verify the remote server's certificate when connecting
over SSL. It can have the value 'on' or 'off'. It defaults to
@@ -3752,9 +3752,6 @@
#
# @url: URL of the image file
#
-# @readahead: Size of the read-ahead cache; must be a multiple of
-# 512 (defaults to 256 kB)
-#
# @timeout: Timeout for connections, in seconds (defaults to 5)
#
# @username: Username for authentication (defaults to none)
@@ -3771,7 +3768,6 @@
##
{ 'struct': 'BlockdevOptionsCurlBase',
'data': { 'url': 'str',
- '*readahead': 'int',
'*timeout': 'int',
'*username': 'str',
'*password-secret': 'str',
Block based caching and the current readahead support do not interact well, so remove readahead support before adding block caching. Readahead will be re-added later. Signed-off-by: David Edmondson <david.edmondson@oracle.com> --- block/curl.c | 23 ++++------------------- docs/system/device-url-syntax.rst.inc | 7 ------- qapi/block-core.json | 4 ---- 3 files changed, 4 insertions(+), 30 deletions(-)