for-6.3/block-2023-02-16
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmPvfncQHGF4Ym9lQGtl
cm5lbC5kawAKCRD301j7KXHgpob2EADXJxcr2jjYHm/7cjKkyuVX8fr80dNdMeuY
JFdsjG1k6Uj73BVhQQWYTcs/PsrWBHWRsv6uz4WgOELj55eXmf5Q0kJszyUeJW33
/DjqLvtoppVcYf80xE13wKvCfn73BjwQo6xkGM0qAYn15eaXiD/Ax3xC6eJlsBeK
PEw7EJyhacbSxZa/1D2B6+mqII1jUQWProTCc3udZ4JHi3WvdWa3Rda0qCqHl4a1
+K2aP2YTFIRPxBzfMNa/CafWVIFubTdht+4Ds6R60RImzB9e0VUBfcsiUyW5Zg7L
Fwv7ptXuWrALwVNdW56Oz1QikBxn2pdRR2HMLwKJW1MD8kP9r8LMm2jV5Rhiwe0B
OQsGRYkOzBvw+bxeP5fvk0iPGVMz6ActH4gkraA5QdLqayDaFYOadlhqz0uRo5SH
Fb42Vl658K/MHDSIk8U58TNkmrsIJsBGohXI9DOGINPPvv3XOPi4Q1HmXkGRmii0
y+lNU/QEGh7xXXew29SPP76uQpQaYfC7NxXCMw/OpOMwehzjsjshmM2lpxi8zsgt
PJUmfHv5qxCplNmTJXmUpmX7sS7550HUdu9FJb13DM+gzKg8bk9jWVuLrzqrVlG5
1hKWEl1+heg1heRfaIuJVLbPI0au6Sb4uqhih/PHyrP9TWIoAruDbDJM65GKTxyE
2uEgcHzHQw==
=poRc
-----END PGP SIGNATURE-----
Merge tag 'for-6.3/block-2023-02-16' of git://git.kernel.dk/linux
Pull block updates from Jens Axboe:
- NVMe updates via Christoph:
- Small improvements to the logging functionality (Amit Engel)
- Authentication cleanups (Hannes Reinecke)
- Cleanup and optimize the DMA mapping cod in the PCIe driver
(Keith Busch)
- Work around the command effects for Format NVM (Keith Busch)
- Misc cleanups (Keith Busch, Christoph Hellwig)
- Fix and cleanup freeing single sgl (Keith Busch)
- MD updates via Song:
- Fix a rare crash during the takeover process
- Don't update recovery_cp when curr_resync is ACTIVE
- Free writes_pending in md_stop
- Change active_io to percpu
- Updates to drbd, inching us closer to unifying the out-of-tree driver
with the in-tree one (Andreas, Christoph, Lars, Robert)
- BFQ update adding support for multi-actuator drives (Paolo, Federico,
Davide)
- Make brd compliant with REQ_NOWAIT (me)
- Fix for IOPOLL and queue entering, fixing stalled IO waiting on
timeouts (me)
- Fix for REQ_NOWAIT with multiple bios (me)
- Fix memory leak in blktrace cleanup (Greg)
- Clean up sbitmap and fix a potential hang (Kemeng)
- Clean up some bits in BFQ, and fix a bug in the request injection
(Kemeng)
- Clean up the request allocation and issue code, and fix some bugs
related to that (Kemeng)
- ublk updates and fixes:
- Add support for unprivileged ublk (Ming)
- Improve device deletion handling (Ming)
- Misc (Liu, Ziyang)
- s390 dasd fixes (Alexander, Qiheng)
- Improve utility of request caching and fixes (Anuj, Xiao)
- zoned cleanups (Pankaj)
- More constification for kobjs (Thomas)
- blk-iocost cleanups (Yu)
- Remove bio splitting from drivers that don't need it (Christoph)
- Switch blk-cgroups to use struct gendisk. Some of this is now
incomplete as select late reverts were done. (Christoph)
- Add bvec initialization helpers, and convert callers to use that
rather than open-coding it (Christoph)
- Misc fixes and cleanups (Jinke, Keith, Arnd, Bart, Li, Martin,
Matthew, Ulf, Zhong)
* tag 'for-6.3/block-2023-02-16' of git://git.kernel.dk/linux: (169 commits)
brd: use radix_tree_maybe_preload instead of radix_tree_preload
block: use proper return value from bio_failfast()
block: bio-integrity: Copy flags when bio_integrity_payload is cloned
block: Fix io statistics for cgroup in throttle path
brd: mark as nowait compatible
brd: check for REQ_NOWAIT and set correct page allocation mask
brd: return 0/-error from brd_insert_page()
block: sync mixed merged request's failfast with 1st bio's
Revert "blk-cgroup: pin the gendisk in struct blkcg_gq"
Revert "blk-cgroup: pass a gendisk to blkg_lookup"
Revert "blk-cgroup: delay blk-cgroup initialization until add_disk"
Revert "blk-cgroup: delay calling blkcg_exit_disk until disk_release"
Revert "blk-cgroup: move the cgroup information to struct gendisk"
nvme-pci: remove iod use_sgls
nvme-pci: fix freeing single sgl
block: ublk: check IO buffer based on flag need_get_data
s390/dasd: Fix potential memleak in dasd_eckd_init()
s390/dasd: sort out physical vs virtual pointers usage
block: Remove the ALLOC_CACHE_SLACK constant
block: make kobj_type structures constant
...
This commit is contained in:
commit
5b0ed59649
109 changed files with 2224 additions and 1599 deletions
|
|
@ -19,6 +19,8 @@
|
|||
#define UBLK_CMD_GET_PARAMS 0x09
|
||||
#define UBLK_CMD_START_USER_RECOVERY 0x10
|
||||
#define UBLK_CMD_END_USER_RECOVERY 0x11
|
||||
#define UBLK_CMD_GET_DEV_INFO2 0x12
|
||||
|
||||
/*
|
||||
* IO commands, issued by ublk server, and handled by ublk driver.
|
||||
*
|
||||
|
|
@ -79,6 +81,27 @@
|
|||
|
||||
#define UBLK_F_USER_RECOVERY_REISSUE (1UL << 4)
|
||||
|
||||
/*
|
||||
* Unprivileged user can create /dev/ublkcN and /dev/ublkbN.
|
||||
*
|
||||
* /dev/ublk-control needs to be available for unprivileged user, and it
|
||||
* can be done via udev rule to make all control commands available to
|
||||
* unprivileged user. Except for the command of UBLK_CMD_ADD_DEV, all
|
||||
* other commands are only allowed for the owner of the specified device.
|
||||
*
|
||||
* When userspace sends UBLK_CMD_ADD_DEV, the device pair's owner_uid and
|
||||
* owner_gid are stored to ublksrv_ctrl_dev_info by kernel, so far only
|
||||
* the current user's uid/gid is stored, that said owner of the created
|
||||
* device is always the current user.
|
||||
*
|
||||
* We still need udev rule to apply OWNER/GROUP with the stored owner_uid
|
||||
* and owner_gid.
|
||||
*
|
||||
* Then ublk server can be run as unprivileged user, and /dev/ublkbN can
|
||||
* be accessed and managed by its owner represented by owner_uid/owner_gid.
|
||||
*/
|
||||
#define UBLK_F_UNPRIVILEGED_DEV (1UL << 5)
|
||||
|
||||
/* device state */
|
||||
#define UBLK_S_DEV_DEAD 0
|
||||
#define UBLK_S_DEV_LIVE 1
|
||||
|
|
@ -98,7 +121,15 @@ struct ublksrv_ctrl_cmd {
|
|||
__u64 addr;
|
||||
|
||||
/* inline data */
|
||||
__u64 data[2];
|
||||
__u64 data[1];
|
||||
|
||||
/*
|
||||
* Used for UBLK_F_UNPRIVILEGED_DEV and UBLK_CMD_GET_DEV_INFO2
|
||||
* only, include null char
|
||||
*/
|
||||
__u16 dev_path_len;
|
||||
__u16 pad;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ublksrv_ctrl_dev_info {
|
||||
|
|
@ -118,7 +149,8 @@ struct ublksrv_ctrl_dev_info {
|
|||
/* For ublksrv internal use, invisible to ublk driver */
|
||||
__u64 ublksrv_flags;
|
||||
|
||||
__u64 reserved0;
|
||||
__u32 owner_uid; /* store by kernel */
|
||||
__u32 owner_gid; /* store by kernel */
|
||||
__u64 reserved1;
|
||||
__u64 reserved2;
|
||||
};
|
||||
|
|
@ -214,6 +246,17 @@ struct ublk_param_discard {
|
|||
__u16 reserved0;
|
||||
};
|
||||
|
||||
/*
|
||||
* read-only, can't set via UBLK_CMD_SET_PARAMS, disk_devt is available
|
||||
* after device is started
|
||||
*/
|
||||
struct ublk_param_devt {
|
||||
__u32 char_major;
|
||||
__u32 char_minor;
|
||||
__u32 disk_major;
|
||||
__u32 disk_minor;
|
||||
};
|
||||
|
||||
struct ublk_params {
|
||||
/*
|
||||
* Total length of parameters, userspace has to set 'len' for both
|
||||
|
|
@ -224,10 +267,12 @@ struct ublk_params {
|
|||
__u32 len;
|
||||
#define UBLK_PARAM_TYPE_BASIC (1 << 0)
|
||||
#define UBLK_PARAM_TYPE_DISCARD (1 << 1)
|
||||
#define UBLK_PARAM_TYPE_DEVT (1 << 2)
|
||||
__u32 types; /* types of parameter included */
|
||||
|
||||
struct ublk_param_basic basic;
|
||||
struct ublk_param_discard discard;
|
||||
struct ublk_param_devt devt;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue