diff --git a/patches/openstack/cinder/sep-sp-rm-backup.patch b/patches/openstack/cinder/sep-sp-rm-backup.patch
new file mode 100644
index 0000000..76efaf2
--- /dev/null
+++ b/patches/openstack/cinder/sep-sp-rm-backup.patch
@@ -0,0 +1,55 @@
+From ade8da3e2df38eaf08717009cc1e874af01aca9d Mon Sep 17 00:00:00 2001
+From: Peter Penchev <openstack-dev@storpool.com>
+Date: Mon, 11 May 2020 11:02:53 +0300
+Subject: [PATCH 5/7] StorPool driver: remove the obsolete backup_volume()
+
+Follow suit with I984de3df803f12dbb95e3309e668b3fbd519e70f.
+
+Change-Id: Ia172452fd7c96dccfe54789d868fcf7b748322a3
+---
+ cinder/volume/drivers/storpool.py | 29 -----------------------------
+ 1 file changed, 29 deletions(-)
+
+diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
+index 353329085..cccda8ecb 100644
+--- a/cinder/volume/drivers/storpool.py
++++ b/cinder/volume/drivers/storpool.py
+@@ -315,35 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+             'pools': pools
+         }
+ 
+-    def backup_volume(self, context, backup, backup_service):
+-        volume = self.db.volume_get(context, backup['volume_id'])
+-        req_id = context.request_id
+-        volname = self._attach.volumeName(volume['id'])
+-        name = self._attach.volsnapName(volume['id'], req_id)
+-        try:
+-            self._attach.api().snapshotCreate(volname, {'name': name})
+-        except spapi.ApiError as e:
+-            raise self._backendException(e)
+-        self._attach.add(req_id, {
+-            'volume': name,
+-            'type': 'backup',
+-            'id': req_id,
+-            'rights': 1,
+-            'volsnap': True
+-        })
+-        try:
+-            return super(StorPoolDriver, self).backup_volume(
+-                context, backup, backup_service)
+-        finally:
+-            self._attach.remove(req_id)
+-            try:
+-                self._attach.api().snapshotDelete(name)
+-            except spapi.ApiError as e:
+-                LOG.error(
+-                    'Could not remove the temp snapshot %(name)s for '
+-                    '%(vol)s: %(err)s',
+-                    {'name': name, 'vol': volname, 'err': e})
+-
+     def copy_volume_to_image(self, context, volume, image_service, image_meta):
+         req_id = context.request_id
+         volname = self._attach.volumeName(volume['id'])
+-- 
+2.35.1
+
