From: Christoph Hellwig <hch@infradead.org>
To: Sergei Shtepa <sergei.shtepa@veeam.com>
Cc: axboe@kernel.dk, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 02/20] block, blksnap: header file of the module interface
Date: Wed, 6 Jul 2022 06:03:53 -0700 [thread overview]
Message-ID: <YsWIOYqO4QVnd2Ru@infradead.org> (raw)
In-Reply-To: <1655135593-1900-3-git-send-email-sergei.shtepa@veeam.com>
On Mon, Jun 13, 2022 at 06:52:55PM +0300, Sergei Shtepa wrote:
> The header file contains a set of declarations, structures and control
> requests (ioctl) that allows to manage the module from the user space.
I think this should go into include/uapi/ if you want it in a global
place.
> +#pragma once
In the kernel we use classic #ifdef based guards.
> +#include <linux/types.h>
> +#include <linux/uuid.h>
The uuid_t type can't be used in a userspae API. Please use a raw
__u8 API and then use import_uuid.
> +#define BLK_SNAP_MODULE_NAME "blksnap"
Does this belong into a user interface?
> +#define BLK_SNAP_IMAGE_NAME "blksnap-image"
> +#define BLK_SNAP 'V'
> +
> +enum blk_snap_ioctl {
> + /*
> + * Service controls
> + */
> + blk_snap_ioctl_version,
> + /*
> + * Contols for tracking
> + */
> + blk_snap_ioctl_tracker_remove,
> + blk_snap_ioctl_tracker_collect,
> + blk_snap_ioctl_tracker_read_cbt_map,
> + blk_snap_ioctl_tracker_mark_dirty_blocks,
> + /*
> + * Snapshot contols
> + */
> + blk_snap_ioctl_snapshot_create,
> + blk_snap_ioctl_snapshot_destroy,
> + blk_snap_ioctl_snapshot_append_storage,
> + blk_snap_ioctl_snapshot_take,
> + blk_snap_ioctl_snapshot_collect,
> + blk_snap_ioctl_snapshot_collect_images,
> + blk_snap_ioctl_snapshot_wait_event,
> + blk_snap_ioctl_end,
For uapis classic #defines have the adnvantage that userspace can test
for their presence if new ones get added. Also the _end one should not
be in an UAPI header as new ones can be added at any time.
next prev parent reply other threads:[~2022-07-06 13:03 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-13 15:52 [PATCH 00/20] blksnap - creating non-persistent snapshots for backup Sergei Shtepa
2022-06-13 15:52 ` [PATCH 01/20] block, blk_filter: enable block device filters Sergei Shtepa
2022-06-13 21:50 ` Randy Dunlap
2022-06-14 9:19 ` Sergei Shtepa
2022-06-14 9:21 ` Sergei Shtepa
2022-06-14 9:01 ` kernel test robot
2022-07-06 12:59 ` Christoph Hellwig
2022-07-07 8:26 ` Sergei Shtepa
2022-07-07 17:26 ` Christoph Hellwig
2022-07-08 10:45 ` Sergei Shtepa
2022-07-13 11:56 ` Christoph Hellwig
2022-07-13 13:47 ` Sergei Shtepa
2022-07-14 5:12 ` Christoph Hellwig
2022-07-14 9:22 ` Sergei Shtepa
2022-06-13 15:52 ` [PATCH 02/20] block, blksnap: header file of the module interface Sergei Shtepa
2022-07-06 13:03 ` Christoph Hellwig [this message]
2022-06-13 15:52 ` [PATCH 03/20] block, blksnap: module management interface functions Sergei Shtepa
2022-06-13 22:44 ` Chaitanya Kulkarni
2022-06-13 15:52 ` [PATCH 04/20] block, blksnap: init() and exit() functions Sergei Shtepa
2022-06-13 15:52 ` [PATCH 05/20] block, blksnap: interaction with sysfs Sergei Shtepa
2022-06-13 15:52 ` [PATCH 06/20] block, blksnap: attaching and detaching the filter and handling a bios Sergei Shtepa
2022-06-13 15:53 ` [PATCH 07/20] block, blksnap: map of change block tracking Sergei Shtepa
2022-06-13 15:53 ` [PATCH 08/20] block, blksnap: big buffer in the form of an array of pages Sergei Shtepa
2022-07-06 13:09 ` Christoph Hellwig
2022-06-13 15:53 ` [PATCH 09/20] block, blksnap: minimum data storage unit of the original block device Sergei Shtepa
2022-06-13 15:53 ` [PATCH 10/20] block, blksnap: buffer in memory for the minimum data storage unit Sergei Shtepa
2022-06-13 15:53 ` [PATCH 11/20] block, blksnap: functions and structures for performing block I/O operations Sergei Shtepa
2022-07-07 17:33 ` Christoph Hellwig
2022-06-13 15:53 ` [PATCH 12/20] block, blksnap: storage for storing difference blocks Sergei Shtepa
2022-06-13 15:53 ` [PATCH 13/20] block, blksnap: event queue from the difference storage Sergei Shtepa
2022-06-13 15:53 ` [PATCH 14/20] block, blksnap: owner of information about overwritten blocks of the original block device Sergei Shtepa
2022-06-13 15:53 ` [PATCH 15/20] block, blksnap: snapshot image " Sergei Shtepa
2022-07-06 13:13 ` Christoph Hellwig
2022-07-07 9:16 ` Sergei Shtepa
2022-07-07 17:24 ` Christoph Hellwig
2022-07-08 7:58 ` Sergei Shtepa
2022-07-08 8:04 ` Christoph Hellwig
2022-06-13 15:53 ` [PATCH 16/20] block, blksnap: snapshot Sergei Shtepa
2022-06-13 15:53 ` [PATCH 17/20] block, blksnap: debugging mechanism for monitoring memory consumption Sergei Shtepa
2022-06-13 15:53 ` [PATCH 18/20] block, blksnap: Kconfig Sergei Shtepa
2022-06-13 21:38 ` Randy Dunlap
2022-07-06 13:06 ` Christoph Hellwig
2022-06-13 15:53 ` [PATCH 19/20] block, blksnap: Makefile Sergei Shtepa
2022-07-06 13:06 ` Christoph Hellwig
2022-06-13 15:53 ` [PATCH 20/20] block, blksnap: adds a blksnap to the kernel tree Sergei Shtepa
2022-06-18 2:11 ` kernel test robot
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=YsWIOYqO4QVnd2Ru@infradead.org \
--to=hch@infradead.org \
--cc=axboe@kernel.dk \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sergei.shtepa@veeam.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).