|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
From b4f0985266f5fba817602e8af9ad900425c5a853 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
From: Saggi Mizrahi <smizrahi@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Date: Mon, 24 Sep 2012 01:28:38 +0200
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Subject: [PATCH] Use the recommended alignment instead of using pagesize
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Page size is the usual recommended alignment but when it isn't using it
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
can cause memory corruption.
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Change-Id: If9da41a2f74d3cea7300df9606c78eebcc9927a9
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Signed-off-by: Saggi Mizrahi <smizrahi@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Reviewed-on: http://gerrit.ovirt.org/8143
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Tested-by: Noam Slomianko <nslomian@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Reviewed-on: http://gerrit.ovirt.org/8174
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Reviewed-by: Federico Simoncelli <fsimonce@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
Tested-by: Federico Simoncelli <fsimonce@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
---
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
vdsm/storage/fileUtils.py | 9 ++++++---
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
diff --git a/vdsm/storage/fileUtils.py b/vdsm/storage/fileUtils.py
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
index 020f16d..511dff9 100644
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
--- a/vdsm/storage/fileUtils.py
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+++ b/vdsm/storage/fileUtils.py
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
@@ -45,9 +45,10 @@ NFS_OPTIONS = "".join(config.get('irs', 'nfs_mount_options').split())
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
log = logging.getLogger('fileUtils')
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
-PAGESIZE = libc.getpagesize()
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
CharPointer = ctypes.POINTER(ctypes.c_char)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+_PC_REC_XFER_ALIGN = 17
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
class TarCopyFailed(RuntimeError): pass
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
def tarCopy(src, dst, exclude=[]):
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
@@ -71,7 +72,8 @@ def isStaleHandle(path):
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
os.listdir(path)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
except OSError as ex:
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
if ex.errno in (errno.EIO, errno.ESTALE):
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
- return True
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+ return True
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
# We could get contradictory results because of
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
# soft mounts
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
if (exists or st) and ex.errno == errno.ENOENT:
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
@@ -262,7 +264,8 @@ class DirectFile(object):
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
ppbuff = ctypes.pointer(pbuff)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
# Because we usually have fixed sizes for our reads, caching
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
# buffers might give a slight performance boost.
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
- rc = libc.posix_memalign(ppbuff, PAGESIZE, size)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+ alignment = libc.fpathconf(self.fileno(), _PC_REC_XFER_ALIGN)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
+ rc = libc.posix_memalign(ppbuff, alignment, size)
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
if rc:
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
raise OSError(rc, "Could not allocate aligned buffer")
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
try:
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
--
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
1.7.11.4
|
|
![](https://seccdn.libravatar.org/avatar/462a60e1d169ce7ce64da9fb6b067f5c020a5e963dfca570256adc87ec5450f2?s=16&d=retro) |
6368f7b |
|