Commit d4d58949 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'block-6.4-2023-05-13' of git://git.kernel.dk/linux

Pull block fixes from Jens Axboe:
 "Just a few minor fixes for drivers, and a deletion of a file that is
  woefully out-of-date these days"

* tag 'block-6.4-2023-05-13' of git://git.kernel.dk/linux:
  Documentation/block: drop the request.rst file
  ublk: fix command op code check
  block/rnbd: replace REQ_OP_FLUSH with REQ_OP_WRITE
  nbd: Fix debugfs_create_dir error checking
parents 9a48d604 56cdea92
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ Block
   kyber-iosched
   null_blk
   pr
   request
   stat
   switching-sched
   writeback_cache_control

Documentation/block/request.rst

deleted100644 → 0
+0 −99
Original line number Diff line number Diff line
============================
struct request documentation
============================

Jens Axboe <jens.axboe@oracle.com> 27/05/02


.. FIXME:
   No idea about what does mean - seems just some noise, so comment it

   1.0
   Index

   2.0 Struct request members classification

       2.1 struct request members explanation

   3.0


   2.0



Short explanation of request members
====================================

Classification flags:

	=	====================
	D	driver member
	B	block layer member
	I	I/O scheduler member
	=	====================

Unless an entry contains a D classification, a device driver must not access
this member. Some members may contain D classifications, but should only be
access through certain macros or functions (eg ->flags).

<linux/blkdev.h>

=============================== ======= =======================================
Member				Flag	Comment
=============================== ======= =======================================
struct list_head queuelist	BI	Organization on various internal
					queues

``void *elevator_private``	I	I/O scheduler private data

unsigned char cmd[16]		D	Driver can use this for setting up
					a cdb before execution, see
					blk_queue_prep_rq

unsigned long flags		DBI	Contains info about data direction,
					request type, etc.

int rq_status			D	Request status bits

kdev_t rq_dev			DBI	Target device

int errors			DB	Error counts

sector_t sector			DBI	Target location

unsigned long hard_nr_sectors	B	Used to keep sector sane

unsigned long nr_sectors	DBI	Total number of sectors in request

unsigned long hard_nr_sectors	B	Used to keep nr_sectors sane

unsigned short nr_phys_segments	DB	Number of physical scatter gather
					segments in a request

unsigned short nr_hw_segments	DB	Number of hardware scatter gather
					segments in a request

unsigned int current_nr_sectors	DB	Number of sectors in first segment
					of request

unsigned int hard_cur_sectors	B	Used to keep current_nr_sectors sane

int tag				DB	TCQ tag, if assigned

``void *special``		D	Free to be used by driver

``char *buffer``		D	Map of first segment, also see
					section on bouncing SECTION

``struct completion *waiting``	D	Can be used by driver to get signalled
					on request completion

``struct bio *bio``		DBI	First bio in request

``struct bio *biotail``		DBI	Last bio in request

``struct request_queue *q``	DB	Request queue this request belongs to

``struct request_list *rl``	B	Request list this request came from
=============================== ======= =======================================
+2 −2
Original line number Diff line number Diff line
@@ -1666,7 +1666,7 @@ static int nbd_dev_dbg_init(struct nbd_device *nbd)
		return -EIO;

	dir = debugfs_create_dir(nbd_name(nbd), nbd_dbg_dir);
	if (!dir) {
	if (IS_ERR(dir)) {
		dev_err(nbd_to_dev(nbd), "Failed to create debugfs dir for '%s'\n",
			nbd_name(nbd));
		return -EIO;
@@ -1692,7 +1692,7 @@ static int nbd_dbg_init(void)
	struct dentry *dbg_dir;

	dbg_dir = debugfs_create_dir("nbd", NULL);
	if (!dbg_dir)
	if (IS_ERR(dbg_dir))
		return -EIO;

	nbd_dbg_dir = dbg_dir;
+1 −1
Original line number Diff line number Diff line
@@ -241,7 +241,7 @@ static inline blk_opf_t rnbd_to_bio_flags(u32 rnbd_opf)
		bio_opf = REQ_OP_WRITE;
		break;
	case RNBD_OP_FLUSH:
		bio_opf = REQ_OP_FLUSH | REQ_PREFLUSH;
		bio_opf = REQ_OP_WRITE | REQ_PREFLUSH;
		break;
	case RNBD_OP_DISCARD:
		bio_opf = REQ_OP_DISCARD;
+1 −1
Original line number Diff line number Diff line
@@ -1281,7 +1281,7 @@ static inline int ublk_check_cmd_op(u32 cmd_op)
{
	u32 ioc_type = _IOC_TYPE(cmd_op);

	if (IS_ENABLED(CONFIG_BLKDEV_UBLK_LEGACY_OPCODES) && ioc_type != 'u')
	if (!IS_ENABLED(CONFIG_BLKDEV_UBLK_LEGACY_OPCODES) && ioc_type != 'u')
		return -EOPNOTSUPP;

	if (ioc_type != 'u' && ioc_type != 0)