All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <laurent@vivier.eu>,
	Filip Bozuta <Filip.Bozuta@syrmia.com>
Subject: [PULL 07/14] linux-user: Add support for a group of btrfs ioctls used for snapshots
Date: Thu, 13 Aug 2020 08:49:16 +0200	[thread overview]
Message-ID: <20200813064923.263565-8-laurent@vivier.eu> (raw)
In-Reply-To: <20200813064923.263565-1-laurent@vivier.eu>

From: Filip Bozuta <Filip.Bozuta@syrmia.com>

This patch implements functionality for following ioctls:

BTRFS_IOC_SNAP_CREATE - Creating a subvolume snapshot

    Create a snapshot of a btrfs subvolume. The snapshot is created using the
    ioctl's third argument that is a pointer to a 'struct btrfs_ioctl_vol_args'
    (which was mentioned in the previous patch). Before calling this ioctl,
    the fields of the structure should be filled with aproppriate values for
    the file descriptor and path of the subvolume for which the snapshot is to
    be created.

BTRFS_IOC_SNAP_DESTROY - Removing a subvolume snapshot

    Delete a snapshot of a btrfs subvolume. The snapshot is deleted using the
    ioctl's third argument that is a pointer to a 'struct btrfs_ioctl_vol_args'
    (which was mentioned in the previous patch). Before calling this ioctl,
    the fields of the structure should be filled with aproppriate values for
    the file descriptor and path of the subvolume for which the snapshot is to
    be deleted.

Implementation notes:

    Since the thunk type 'struct btrfs_ioctl_vol_args' is defined in the
    previous patch, the implementation for these ioctls was straightforward.

Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200803094629.21898-3-Filip.Bozuta@syrmia.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 linux-user/ioctls.h       | 8 ++++++++
 linux-user/syscall_defs.h | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 12d14442249f..f33a99f8b642 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -174,10 +174,18 @@
      IOCTL(FS_IOC32_GETVERSION, IOC_R, MK_PTR(TYPE_INT))
      IOCTL(FS_IOC32_SETVERSION, IOC_W, MK_PTR(TYPE_INT))
 
+#ifdef BTRFS_IOC_SNAP_CREATE
+     IOCTL(BTRFS_IOC_SNAP_CREATE, IOC_W,
+           MK_PTR(MK_STRUCT(STRUCT_btrfs_ioctl_vol_args)))
+#endif
 #ifdef BTRFS_IOC_SUBVOL_CREATE
      IOCTL(BTRFS_IOC_SUBVOL_CREATE, IOC_W,
            MK_PTR(MK_STRUCT(STRUCT_btrfs_ioctl_vol_args)))
 #endif
+#ifdef BTRFS_IOC_SNAP_DESTROY
+     IOCTL(BTRFS_IOC_SNAP_DESTROY, IOC_W,
+           MK_PTR(MK_STRUCT(STRUCT_btrfs_ioctl_vol_args)))
+#endif
 #ifdef BTRFS_IOC_SUBVOL_GETFLAGS
      IOCTL(BTRFS_IOC_SUBVOL_GETFLAGS, IOC_R, MK_PTR(TYPE_ULONGLONG))
 #endif
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 5435baea38d9..e514cb6916ed 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -973,7 +973,9 @@ struct target_rtc_pll_info {
 #define TARGET_FS_IOC32_SETVERSION TARGET_IOW('v', 2, int)
 
 /* btrfs ioctls */
+#define TARGET_BTRFS_IOC_SNAP_CREATE            TARGET_IOWU(BTRFS_IOCTL_MAGIC, 1)
 #define TARGET_BTRFS_IOC_SUBVOL_CREATE          TARGET_IOWU(BTRFS_IOCTL_MAGIC, 14)
+#define TARGET_BTRFS_IOC_SNAP_DESTROY           TARGET_IOWU(BTRFS_IOCTL_MAGIC, 15)
 #define TARGET_BTRFS_IOC_SUBVOL_GETFLAGS        TARGET_IOR(BTRFS_IOCTL_MAGIC, 25,\
                                                            abi_ullong)
 #define TARGET_BTRFS_IOC_SUBVOL_SETFLAGS        TARGET_IOW(BTRFS_IOCTL_MAGIC, 26,\
-- 
2.26.2



  parent reply	other threads:[~2020-08-13  6:53 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-13  6:49 [PULL 00/14] Linux user for 5.2 patches Laurent Vivier
2020-08-13  6:49 ` [PULL 01/14] linux-user: Fix "print_fdset()" in "strace.c" to not print ", " after last value Laurent Vivier
2020-08-13  6:49 ` [PULL 02/14] linux-user: Validate mmap/mprotect prot value Laurent Vivier
2020-08-13  6:49 ` [PULL 03/14] linux-user: Adjust guest page protection for the host Laurent Vivier
2020-08-13  6:49 ` [PULL 04/14] linux-user: Modify 'target_to_host/host_to_target_itimerspec()' Laurent Vivier
2020-08-13  6:49 ` [PULL 05/14] linux-user: Add support for a group of 2038 safe syscalls Laurent Vivier
2020-08-13  6:49 ` [PULL 06/14] linux-user: Add support for a group of btrfs ioctls used for subvolumes Laurent Vivier
2020-08-13  6:49 ` Laurent Vivier [this message]
2020-08-13  6:49 ` [PULL 08/14] linux-user: Add support for btrfs ioctls used to manipulate with devices Laurent Vivier
2020-08-13  6:49 ` [PULL 09/14] linux-user: Add support for btrfs ioctls used to get/set features Laurent Vivier
2020-08-13  6:49 ` [PULL 10/14] linux-user: Add support for a group of btrfs inode ioctls Laurent Vivier
2020-08-13  6:49 ` [PULL 11/14] linux-user: Add support for two btrfs ioctls used for subvolume Laurent Vivier
2020-08-13  6:49 ` [PULL 12/14] linux-user: Add support for btrfs ioctls used to manage quota Laurent Vivier
2020-08-13  6:49 ` [PULL 13/14] linux-user: Add support for btrfs ioctls used to scrub a filesystem Laurent Vivier
2020-08-13  6:49 ` [PULL 14/14] linux-user: Fix 'utimensat()' implementation Laurent Vivier
2020-08-21 16:23 ` [PULL 00/14] Linux user for 5.2 patches Peter Maydell
2020-08-21 18:45   ` Laurent Vivier
2020-08-21 19:12     ` Filip Bozuta
2020-08-21 19:08   ` Laurent Vivier
2020-08-23  8:21     ` Laurent Vivier
2020-08-23 13:28     ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200813064923.263565-8-laurent@vivier.eu \
    --to=laurent@vivier.eu \
    --cc=Filip.Bozuta@syrmia.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.