[blivet:master 05/20] Avoid using Size constant in FileDevice._create().
Vratislav Podzimek
vpodzime at redhat.com
Mon Jan 5 07:51:36 UTC 2015
On Tue, 2014-12-23 at 18:42 -0500, mulhern wrote:
> It makes the code a little bit awkward and busy and the name MiB
> will conflict with some size constants defined in subsequent patch.
> New code is an order of magnitude more efficient, which is a bonus.
>
> Signed-off-by: mulhern <amulhern at redhat.com>
> ---
> blivet/devices/file.py | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/blivet/devices/file.py b/blivet/devices/file.py
> index da231c5..628853d 100644
> --- a/blivet/devices/file.py
> +++ b/blivet/devices/file.py
> @@ -24,7 +24,6 @@ import os
>
> from .. import util
> from ..storage_log import log_method_call
> -from ..size import Size
>
> import logging
> log = logging.getLogger("blivet")
> @@ -98,12 +97,11 @@ class FileDevice(StorageDevice):
> fd = os.open(self.path, os.O_WRONLY|os.O_CREAT|os.O_TRUNC)
> # all this fuss is so we write the zeros 1MiB at a time
> zero = "\0"
> - MiB = Size("1 MiB")
> - count = int(self.size.convertTo(spec="MiB"))
> - rem = self.size % MiB
> + block_size = 1024 ** 2
> + (count, rem) = divmod(int(self.size), block_size)
>
> for _n in range(count):
> - os.write(fd, zero * MiB)
> + os.write(fd, zero * block_size)
Is it really wise to allocate 1 MiB chunk of memory full of zeroes only
to write it out to a file?
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
More information about the anaconda-patches
mailing list