/linux/drivers/md/dm-vdo/ |
H A 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 …]
|
H A 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 …]
|
H A 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 …]
|
H A 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 */ 52 * maximum number of outstanding VIOs. This value was chosen to make it highly unlikely 57 /* The maximum number of logical zones */ [all …]
|
H A 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 …]
|
H A D | types.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 11 #include <linux/device-mapper.h> 16 #include "funnel-queue.h" 21 /* The size of a block. */ 30 /* The logical block number as used by the consumer. */ 39 /* A page number. */ 43 * The physical (well, less logical) block number at which the block is found on the underlying 51 /* A number of sectors. */ 54 /* A sequence number. */ 57 /* The offset of a block within a slab. */ [all …]
|
/linux/include/linux/ |
H A D | sysv_fs.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 16 /* Block numbers are 24 bit, sometimes stored in 32 bit. 17 On Coherent FS, they are always stored in PDP-11 manner: the least 21 /* 0 is non-existent */ 26 /* Xenix super-block data on disk */ 27 #define XENIX_NICINOD 100 /* number of inode cache entries */ 28 #define XENIX_NICFREE 100 /* number of free block list chunk entries */ 31 __fs32 s_fsize __packed2__; /* total number of zones of this fs */ 32 /* the start of the free block list: */ 33 __fs16 s_nfree; /* number of free blocks in s_free, <= XENIX_NICFREE */ [all …]
|
/linux/Documentation/filesystems/ext4/ |
H A 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 …]
|
H A 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 …]
|
H A 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/include/uapi/linux/ |
H A 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 …]
|
H A 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/drivers/media/i2c/ccs/ |
H A 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/Documentation/admin-guide/device-mapper/ |
H A 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 …]
|
H A 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 …]
|
H A D | verity.rst | 2 dm-verity 5 Device-Mapper's "verity" target provides transparent integrity checking of 6 block devices using a cryptographic digest provided by the kernel crypto API. 7 This target is read-only. 21 This is the type of the on-disk hash format. 25 the rest of the block is padded with zeroes. 33 checked. It may be specified as a path, like /dev/sdaX, or a device number, 40 dm-verity device. 43 The block size on a data device in bytes. 44 Each block corresponds to one digest on the hash device. [all …]
|
/linux/fs/ext4/ |
H A 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 …]
|
/linux/fs/xfs/libxfs/ |
H A 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 …]
|
H A 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 …]
|
H A D | xfs_btree_staging.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 9 /* Fake root for an AG-rooted btree. */ 11 /* AG block number of the new btree root. */ 17 /* Number of blocks used by the btree. */ 21 /* Cursor interactions with fake roots for AG-rooted btrees. */ 27 /* Fake root for an inode-rooted btree. */ 32 /* Number of blocks used by the btree. */ 38 /* Number of bytes available for this fork in the inode. */ 42 /* Cursor interactions with fake roots for inode-rooted btrees. */ 50 unsigned int idx, struct xfs_btree_block *block, [all …]
|
/linux/Documentation/scsi/ |
H A 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/Documentation/driver-api/nvdimm/ |
H A 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 …]
|
/linux/Documentation/block/ |
H A 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/fs/jfs/ |
H A D | jfs_dmap.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Copyright (C) International Business Machines Corp., 2000-2002 10 #define BMAPVERSION 1 /* version number */ 14 #define L2LPERDMAP 8 /* l2 number of leaves per dmap tree */ 25 #define NOFREE ((s8) -1) /* no blocks free */ 26 #define MAXAG 128 /* max number of allocation groups */ 32 * maximum l2 number of disk blocks at the various dmapctl levels. 39 * maximum number of disk blocks at the various dmapctl levels. 62 * convert disk block number to the logical block number of the dmap 63 * describing the disk block. s is the log2(number of logical blocks per page) [all …]
|
/linux/include/linux/mtd/ |
H A D | bbm.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * NAND family Bad Block Management (BBM) header file 4 * - Bad Block Table (BBT) implementation 9 * Copyright © 2000-2005 15 /* The maximum number of NAND chips in an array */ 19 * struct nand_bbt_descr - bad block table descriptor 28 * @maxblocks: maximum number of blocks to search for a bbt. This number of 31 * @reserved_block_code: if non-0, this pattern denotes a reserved (rather than 32 * bad) block in the stored bbt 33 * @pattern: pattern to identify bad block table or factory marked good / [all …]
|