so it will be easier to change anything in the future

https://virtuozzo.atlassian.net/browse/VSTOR-96269
Signed-off-by: Andrey Zhadchenko <andrey.zhadche...@virtuozzo.com>
---
 block/blk-cbt.c         | 10 ++++++++++
 include/uapi/linux/fs.h |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/block/blk-cbt.c b/block/blk-cbt.c
index a12d16a1ed39..2543bf1e846c 100644
--- a/block/blk-cbt.c
+++ b/block/blk-cbt.c
@@ -1011,9 +1011,19 @@ static int cbt_ioc_misc(struct block_device *bdev, void 
__user *arg)
 int blk_cbt_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
 {
        struct blk_user_cbt_info __user *ucbt_ioc;
+       __u32 abi_version;
 
        ucbt_ioc = (struct blk_user_cbt_info __user *) arg;
 
+       if (copy_from_user(&abi_version, arg, sizeof(abi_version)))
+               return -EFAULT;
+
+       if (abi_version != CBT_ABI_VERSION) {
+               WARN_ONCE(1, "blk-cbt ABI mimatch: kernel has %d, userspace 
uses %d",
+                         CBT_ABI_VERSION, abi_version);
+               return -EOPNOTSUPP;
+       }
+
        if (cmd == BLKCBTGET)
                return cbt_ioc_get(bdev, ucbt_ioc);
 
diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h
index 5d7014be0139..2aaee5257477 100644
--- a/include/uapi/linux/fs.h
+++ b/include/uapi/linux/fs.h
@@ -128,10 +128,13 @@ struct blk_user_cbt_extent {
        __u64 ce_reserved64[1];
 };
 
+
+#define CBT_ABI_VERSION 2
 #define CBT_NAME_LENGTH 128
 #define CBT_MAX_ENTRIES 16
 
 struct blk_user_cbt_info {
+       __u32 version;          /* ABI version */
        __u8  ci_name[CBT_NAME_LENGTH]; /* CBT name */
        __u64 ci_start;         /* start phisical range of mapping which
                                   userspace wants (in) */
@@ -153,6 +156,7 @@ enum CI_FLAGS
 
 /* Extension of cbt ioctls:  */
 struct blk_user_cbt_misc_info {
+       __u32 version;              /* ABI version */
        __u8 name[CBT_NAME_LENGTH]; /* Bitmap name */
 /* Allocate and move pending map to CBT snapshot */
 #define CBT_SNAP_CREATE                0
-- 
2.39.3

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to