/linux-6.15/drivers/md/dm-vdo/ |
D | recovery-journal.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 13 #include "admin-state.h" 19 #include "wait-queue.h" 24 * The recovery_journal provides a log of all block mapping and reference count changes which have 25 * not yet been stably written to the block map or slab journals. This log helps to reduce the 26 * write amplification of writes by providing amortization of slab journal and block map page 30 * The concurrency guarantees of this single-threaded model allow the code to omit more 31 * fine-grained locking for recovery journal structures. 33 * The journal consists of a set of on-disk blocks arranged as a circular log with monotonically 35 * journal. The 'head' is the oldest active block in the journal. The 'tail' is the end of the [all …]
|
D | encodings.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 20 * An in-memory representation of a version number for versioned structures on disk. 22 * A version number consists of two portions, a major version and a minor version. Any format 34 * A packed, machine-independent, on-disk representation of a version_number. Both fields are 35 * stored in little-endian byte order. 57 /* A packed, machine-independent, on-disk representation of a component header. */ 99 /* The block offset to be applied to bios */ 124 * DOC: Block map entries 126 * The entry for each logical block in the block map is encoded into five bytes, which saves space 127 * in both the on-disk and in-memory layouts. It consists of the 36 low-order bits of a [all …]
|
D | slab-depot.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 10 #include <linux/dm-kcopyd.h> 15 #include "admin-state.h" 17 #include "data-vio.h" 19 #include "physical-zone.h" 20 #include "priority-table.h" 21 #include "recovery-journal.h" 25 #include "wait-queue.h" 28 * A slab_depot is responsible for managing all of the slabs and block allocators of a VDO. It has 33 * slabs assigned to that zone. The concurrency guarantees of this single-threaded model allow the [all …]
|
D | constants.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 15 * The maximum number of contiguous PBNs which will go to a single bio submission queue, 20 /* The number of entries on a block map page */ 23 /* The origin of the flat portion of the block map */ 27 * The height of a block map tree. Assuming a root count of 60 and 812 entries per page, 32 /* The default number of bio submission queues. */ 35 /* The number of contiguous PBNs to be submitted to a single bio queue. */ 38 /* The number of trees in the arboreal block map */ 49 * maximum number of outstanding VIOs. This value was chosen to make it highly unlikely 54 /* The maximum number of logical zones */ [all …]
|
D | statistics.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 16 /* The total number of slabs from which blocks may be allocated */ 18 /* The total number of slabs from which blocks have ever been allocated */ 20 /* The number of times since loading that a slab has been re-opened */ 25 * Counters for tracking the number of items written (blocks, requests, etc.) 27 * allow the number of buffered, in-memory items and the number of in-flight, 32 /* The total number of items on which processing has started */ 34 /* The total number of items for which a write operation has been issued */ 36 /* The total number of items for which a write operation has completed */ 42 /* Number of times the on-disk journal was full */ [all …]
|
/linux-6.15/Documentation/filesystems/ext4/ |
D | directory.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 ----------------- 7 an arbitrary byte string (usually ASCII) to an inode number on the 9 that reference the same inode number--these are known as hard links, and 11 such, directory entries are found by reading the data block(s) 18 By default, each directory lists its entries in an “almost-linear” 22 data blocks and that each block contains a linear array of directory 23 entries. The end of each per-block array is signified by reaching the 24 end of the block; the last entry in the block has a record length that 25 takes it all the way to the end of the block. The end of the entire [all …]
|
D | journal.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 -------------- 10 “important” data writes on-disk as quickly as possible. Once the important 15 read-write-erases) before erasing the commit record. Should the system 45 consumes an entire block group, though mke2fs tries to put it in the 48 All fields in jbd2 are written to disk in big-endian order. This is the 61 .. list-table:: 63 :header-rows: 1 65 * - Superblock 66 - descriptor_block (data_blocks or revocation_block) [more data or [all …]
|
D | ifork.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 ------------------------------ 8 regular files and directories will use it for file block indexing 15 string is less than 60 bytes long. Otherwise, either extents or block 18 Direct/Indirect Block Addressing 21 In ext2/3, file block numbers were mapped to logical block numbers by 22 means of an (up to) three level 1-1 block map. To find the logical block 23 that stores a particular file block, the code would navigate through 25 magic number nor a checksum to provide any level of confidence that the 26 block isn't full of garbage. [all …]
|
/linux-6.15/drivers/media/i2c/ccs/ |
D | ccs-data.h | 1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 3 * CCS static data in-memory data structure definitions 5 * Copyright 2019--2020 Intel Corporation 16 * struct ccs_data_block_version - CCS static data version 17 * @version_major: Major version number 18 * @version_minor: Minor version number 32 * struct ccs_reg - CCS register value 33 * @addr: The 16-bit address of the register 44 * struct ccs_if_rule - CCS static data if rule 56 * struct ccs_frame_format_desc - CCS frame format descriptor [all …]
|
/linux-6.15/include/uapi/linux/ |
D | nilfs2_api.h | 1 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ 3 * nilfs2_api.h - NILFS2 user space API 5 * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation. 20 * struct nilfs_cpinfo - checkpoint information 23 * @ci_cno: checkpoint number 25 * @ci_nblk_inc: number of blocks incremented by this checkpoint 28 * @ci_next: next checkpoint number in snapshot list 53 return !!(cpinfo->ci_flags & (1UL << NILFS_CPINFO_##flag)); \ 61 * nilfs_suinfo - segment usage information 63 * @sui_nblocks: number of written blocks in segment [all …]
|
D | nilfs2_ondisk.h | 1 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ 3 * nilfs2_ondisk.h - NILFS2 on-disk structures 5 * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation. 17 * Laboratoire MASI - Institut Blaise Pascal 37 * struct nilfs_inode - structure of an inode on disk 49 * @i_bmap: block mapping 76 * struct nilfs_super_root - structure of super root 96 ((unsigned long)&((struct nilfs_super_root *)0)->sr_dat + \ 109 * File system states (sbp->s_state, nilfs->ns_mount_state) 116 * Mount flags (sbi->s_mount_opt) [all …]
|
/linux-6.15/Documentation/ABI/stable/ |
D | sysfs-block | 1 What: /sys/block/<disk>/alignment_offset 5 Storage devices may report a physical block size that is 6 bigger than the logical block size (for instance a drive 7 with 4KB physical sectors exposing 512-byte logical 13 What: /sys/block/<disk>/discard_alignment 19 the exported logical block size. The discard_alignment 24 What: /sys/block/<disk>/atomic_write_max_bytes 31 operation must not exceed this number of bytes. 35 power-of-two and atomic_write_unit_max_bytes may also be 37 This parameter - along with atomic_write_unit_min_bytes [all …]
|
/linux-6.15/fs/ufs/ |
D | ufs_fs.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 * Adrian Rodriguez (adrian@franklins-tower.rutgers.edu) 12 * 64-bit clean thanks to Maciej W. Rozycki <macro@ds2.pg.gda.pl> 16 * on code by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>. 59 * Each disk drive contains some number of filesystems. 60 * A filesystem consists of a number of cylinder groups. 63 * A filesystem is described by its super-block, which in turn 64 * describes the cylinder groups. The super-block is critical 67 * super-block data does not change, so the copies need not be 71 * are given in the super block as: [all …]
|
/linux-6.15/Documentation/admin-guide/device-mapper/ |
D | cache.rst | 8 dm-cache is a device mapper target written by Joe Thornber, Heinz 11 It aims to improve performance of a block device (eg, a spindle) by 15 This device-mapper solution allows us to insert this caching at 17 a thin-provisioning pool. Caching solutions that are integrated more 20 The target reuses the metadata library used in the thin-provisioning 23 The decision as to what data to migrate and when is left to a plug-in 32 Movement of the primary copy of a logical block from one 39 The origin device always contains a copy of the logical block, which 46 Sub-devices 47 ----------- [all …]
|
D | dm-zoned.rst | 2 dm-zoned 5 The dm-zoned device mapper target exposes a zoned block device (ZBC and 6 ZAC compliant devices) as a regular block device without any write 7 pattern constraints. In effect, it implements a drive-managed zoned 8 block device which hides from the user (a file system or an application 9 doing raw block device accesses) the sequential write constraints of 10 host-managed zoned block devices and can mitigate the potential 11 device-side performance degradation due to excessive random writes on 12 host-aware zoned block devices. 14 For a more detailed description of the zoned block device models and [all …]
|
/linux-6.15/fs/nilfs2/ |
D | alloc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Copyright (C) 2006-2008 Nippon Telegraph and Telephone Corporation. 21 * nilfs_palloc_groups_per_desc_block - get the number of groups that a group 22 * descriptor block can maintain 25 * Return: Number of groups that a group descriptor block can maintain. 35 * nilfs_palloc_groups_count - get maximum number of groups 38 * Return: Maximum number of groups. 43 return 1UL << (BITS_PER_LONG - (inode->i_blkbits + 3 /* log2(8) */)); in nilfs_palloc_groups_count() 47 * nilfs_palloc_init_blockgroup - initialize private variables for allocator 57 mi->mi_bgl = kmalloc(sizeof(*mi->mi_bgl), GFP_NOFS); in nilfs_palloc_init_blockgroup() [all …]
|
D | dat.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Copyright (C) 2006-2008 Nippon Telegraph and Telephone Corporation. 24 * struct nilfs_dat_info - on-memory private data of DAT file 25 * @mi: on-memory private data of metadata file 45 ret = nilfs_palloc_get_entry_block(dat, req->pr_entry_nr, in nilfs_dat_prepare_entry() 46 create, &req->pr_entry_bh); in nilfs_dat_prepare_entry() 47 if (unlikely(ret == -ENOENT)) { in nilfs_dat_prepare_entry() 48 nilfs_err(dat->i_sb, in nilfs_dat_prepare_entry() 49 "DAT doesn't have a block to manage vblocknr = %llu", in nilfs_dat_prepare_entry() 50 (unsigned long long)req->pr_entry_nr); in nilfs_dat_prepare_entry() [all …]
|
/linux-6.15/fs/ext4/ |
D | ext4_extents.h | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com 14 * becomes very small, so index split, in-depth growing and 21 * With EXTENTS_STATS defined, the number of blocks and extents 35 * These number will be displayed at umount time. 44 * For non-inode extent blocks, ext4_extent_tail 49 * This is the extent tail on-disk structure. 52 * covers all valid ext4 block sizes. Therefore, this tail structure can be 53 * crammed into the end of the block without having to rebalance the tree. 60 * This is the extent on-disk structure. [all …]
|
D | balloc.c | 1 // SPDX-License-Identifier: GPL-2.0 7 * Laboratoire MASI - Institut Blaise Pascal 10 * Enhanced block allocation by Stephen Tweedie (sct@redhat.com), 1993 11 * Big-endian to little-endian byte-swapping/bitmaps by 34 * Calculate block group number for a given block number 37 ext4_fsblk_t block) in ext4_get_group_number() argument 42 group = (block - in ext4_get_group_number() 43 le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) >> in ext4_get_group_number() 46 ext4_get_group_no_and_offset(sb, block, &group, NULL); in ext4_get_group_number() 51 * Calculate the block group number and offset into the block/cluster [all …]
|
/linux-6.15/fs/xfs/libxfs/ |
D | xfs_rtbitmap.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2000-2005 Silicon Graphics, Inc. 37 struct xfs_mount *mp = bp->b_mount; in xfs_rtbuf_verify() 38 struct xfs_rtbuf_blkinfo *hdr = bp->b_addr; in xfs_rtbuf_verify() 40 if (!xfs_verify_magic(bp, hdr->rt_magic)) in xfs_rtbuf_verify() 46 if (!uuid_equal(&hdr->rt_uuid, &mp->m_sb.sb_meta_uuid)) in xfs_rtbuf_verify() 48 if (hdr->rt_blkno != cpu_to_be64(xfs_buf_daddr(bp))) in xfs_rtbuf_verify() 57 struct xfs_mount *mp = bp->b_mount; in xfs_rtbuf_verify_read() 58 struct xfs_rtbuf_blkinfo *hdr = bp->b_addr; in xfs_rtbuf_verify_read() 64 if (!xfs_log_check_lsn(mp, be64_to_cpu(hdr->rt_lsn))) { in xfs_rtbuf_verify_read() [all …]
|
D | xfs_btree_staging.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 49 * xfs_btree_stage_afakeroot to set up the in-memory cursor as a staging 56 * Initialize a AG-rooted btree cursor with the given AG btree fake root. 63 ASSERT(!(cur->bc_flags & XFS_BTREE_STAGING)); in xfs_btree_stage_afakeroot() 64 ASSERT(cur->bc_ops->type != XFS_BTREE_TYPE_INODE); in xfs_btree_stage_afakeroot() 65 ASSERT(cur->bc_tp == NULL); in xfs_btree_stage_afakeroot() 67 cur->bc_ag.afake = afake; in xfs_btree_stage_afakeroot() 68 cur->bc_nlevels = afake->af_levels; in xfs_btree_stage_afakeroot() 69 cur->bc_flags |= XFS_BTREE_STAGING; in xfs_btree_stage_afakeroot() 73 * Transform an AG-rooted staging btree cursor back into a regular cursor by [all …]
|
D | xfs_da_format.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. 11 * This structure is common to both leaf nodes and non-leaf nodes in the Btree. 14 * level in the Btree, and to identify which type of block this is. 16 #define XFS_DA_NODE_MAGIC 0xfebe /* magic number: non-leaf blocks */ 17 #define XFS_ATTR_LEAF_MAGIC 0xfbee /* magic number: attribute leaf blks */ 18 #define XFS_DIR2_LEAF1_MAGIC 0xd2f1 /* magic number: v2 dirlf single blks */ 19 #define XFS_DIR2_LEAFN_MAGIC 0xd2ff /* magic number: v2 dirlf multi blks */ 22 __be32 forw; /* previous block in list */ 23 __be32 back; /* following block in list */ [all …]
|
/linux-6.15/Documentation/block/ |
D | stat.rst | 2 Block layer statistics in /sys/block/<dev>/stat 5 This file documents the contents of the /sys/block/<dev>/stat file. 7 The stat file provides several statistics about the state of block 29 read I/Os requests number of read I/Os processed 30 read merges requests number of read I/Os merged with in-queue I/O 31 read sectors sectors number of sectors read 33 write I/Os requests number of write I/Os processed 34 write merges requests number of write I/Os merged with in-queue I/O 35 write sectors sectors number of sectors written 37 in_flight requests number of I/Os currently in flight [all …]
|
/linux-6.15/Documentation/scsi/ |
D | st.rst | 1 .. SPDX-License-Identifier: GPL-2.0 23 flexible method and applicable to single-user workstations. However, 28 parameters, like block size and density using the MTSETDRVBUFFER ioctl. 32 drive performs auto-detection of the tape format well (like some 33 QIC-drives). The result is that any tape can be read, writing can be 37 does not perform auto-detection well enough and there is a single 39 used only in variable block mode (I don't know if this is sensible 40 or not :-). 47 number (bits 5 and 6). The number of modes can be changed by changing 57 between formats in multi-tape operations (the explicitly overridden [all …]
|
/linux-6.15/Documentation/driver-api/nvdimm/ |
D | btt.rst | 2 BTT - Block Translation Table 11 storage as traditional block devices. The block drivers for persistent memory 14 using stored energy in capacitors to complete in-flight block writes, or perhaps 15 in firmware. We don't have this luxury with persistent memory - if a write is in 16 progress, and we experience a power failure, the block will contain a mix of old 19 The Block Translation Table (BTT) provides atomic sector update semantics for 21 being torn can continue to do so. The BTT manifests itself as a stacked block 23 the heart of it, is an indirection table that re-maps all the blocks on the 37 next arena). The following depicts the "On-disk" metadata layout:: 40 Backing Store +-------> Arena [all …]
|