fs/ntfs/volume.h
Source file repositories/reference/linux-study-clean/fs/ntfs/volume.h
File Facts
- System
- Linux kernel
- Corpus path
fs/ntfs/volume.h- Extension
.h- Size
- 9540 bytes
- Lines
- 297
- Domain
- Core OS
- Bucket
- VFS And Filesystem Core
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/rwsem.hlinux/sched.hlinux/wait.hlinux/uidgid.hlinux/workqueue.hlinux/errseq.hlayout.h
Detected Declarations
struct ntfs_volumefunction ntfs_inc_free_clustersfunction ntfs_dec_free_clustersfunction ntfs_inc_free_mft_recordsfunction ntfs_dec_free_mft_recordsfunction ntfs_set_lcn_empty_bitsfunction ntfs_hold_dirty_clustersfunction ntfs_release_dirty_clusters
Annotated Snippet
struct ntfs_volume {
struct super_block *sb;
s64 nr_blocks;
unsigned long flags;
kuid_t uid;
kgid_t gid;
umode_t fmask;
umode_t dmask;
u8 mft_zone_multiplier;
u8 on_errors;
errseq_t wb_err;
u16 sector_size;
u8 sector_size_bits;
u32 cluster_size;
u32 cluster_size_mask;
u8 cluster_size_bits;
u32 mft_record_size;
u32 mft_record_size_mask;
u8 mft_record_size_bits;
u32 index_record_size;
u32 index_record_size_mask;
u8 index_record_size_bits;
s64 nr_clusters;
s64 mft_lcn;
s64 mftmirr_lcn;
u64 serial_no;
u32 upcase_len;
__le16 *upcase;
s32 attrdef_size;
struct attr_def *attrdef;
s64 mft_data_pos;
s64 mft_zone_start;
s64 mft_zone_end;
s64 mft_zone_pos;
s64 data1_zone_pos;
s64 data2_zone_pos;
struct inode *mft_ino;
struct inode *mftbmp_ino;
struct rw_semaphore mftbmp_lock;
struct inode *mftmirr_ino;
int mftmirr_size;
struct inode *logfile_ino;
struct inode *lcnbmp_ino;
struct rw_semaphore lcnbmp_lock;
struct mutex volume_label_lock;
struct inode *vol_ino;
__le16 vol_flags;
u8 major_ver;
u8 minor_ver;
unsigned char *volume_label;
struct inode *root_ino;
struct inode *secure_ino;
struct inode *extend_ino;
struct nls_table *nls_map;
bool nls_utf8;
wait_queue_head_t free_waitq;
atomic64_t free_clusters;
atomic64_t free_mft_records;
atomic64_t dirty_clusters;
u8 sparse_compression_unit;
unsigned int *lcn_empty_bits_per_page;
struct work_struct precalc_work;
loff_t preallocated_size;
};
/*
* Defined bits for the flags field in the ntfs_volume structure.
*
* NV_Errors Volume has errors, prevent remount rw.
* NV_ShowSystemFiles Return system files in ntfs_readdir().
* NV_CaseSensitive Treat file names as case sensitive and
* create filenames in the POSIX namespace.
* Otherwise be case insensitive but still
* create file names in POSIX namespace.
* NV_LogFileEmpty LogFile journal is empty.
* NV_UsnJrnlStamped UsnJrnl has been stamped.
* NV_ReadOnly Volume is mounted read-only.
* NV_Compression Volume supports compression.
* NV_FreeClusterKnown Free cluster count is known and up-to-date.
* NV_Shutdown Volume is in shutdown state
* NV_SysImmutable Protect system files from deletion.
* NV_ShowHiddenFiles Return hidden files in ntfs_readdir().
* NV_HideDotFiles Hide names beginning with a dot (".").
* NV_CheckWindowsNames Refuse creation/rename of files with
* Windows-reserved names (CON, AUX, NUL, COM1,
* LPT1, etc.) or invalid characters.
*
* NV_Discard Issue discard/TRIM commands for freed clusters.
* NV_DisableSparse Disable creation of sparse regions.
* NV_NativeSymlinkRel Translate absolute Windows reparse targets (native_symlink=rel).
Annotation
- Immediate include surface: `linux/rwsem.h`, `linux/sched.h`, `linux/wait.h`, `linux/uidgid.h`, `linux/workqueue.h`, `linux/errseq.h`, `layout.h`.
- Detected declarations: `struct ntfs_volume`, `function ntfs_inc_free_clusters`, `function ntfs_dec_free_clusters`, `function ntfs_inc_free_mft_records`, `function ntfs_dec_free_mft_records`, `function ntfs_set_lcn_empty_bits`, `function ntfs_hold_dirty_clusters`, `function ntfs_release_dirty_clusters`.
- Atlas domain: Core OS / VFS And Filesystem Core.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.