diff options
author | Eric Blake <eblake@redhat.com> | 2020-04-28 15:28:59 -0500 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2020-05-08 13:26:35 +0200 |
commit | 8f23aaf5d6a5458e251c5d5d0555d9e515355e35 (patch) | |
tree | 222449c884848e6ede2fb43e7d0343372aa91192 /block | |
parent | 8e519795041e3293ab6b4e67f5416fa80dc0efc4 (diff) |
nfs: Support BDRV_REQ_ZERO_WRITE for truncate
Our .bdrv_has_zero_init_truncate returns 1 if we detect that the OS
always 0-fills; we can use that same knowledge to implement
BDRV_REQ_ZERO_WRITE by ignoring it when the OS gives it to us for
free.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200428202905.770727-4-eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/nfs.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/block/nfs.c b/block/nfs.c index 385d756e1d..76daa7c9f6 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -620,6 +620,9 @@ static int nfs_file_open(BlockDriverState *bs, QDict *options, int flags, } bs->total_sectors = ret; + if (client->has_zero_init) { + bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE; + } return 0; } |