fs/ceph/super.h
Source file repositories/reference/linux-study-clean/fs/ceph/super.h
File Facts
- System
- Linux kernel
- Corpus path
fs/ceph/super.h- Extension
.h- Size
- 47279 bytes
- Lines
- 1474
- Domain
- Core OS
- Bucket
- VFS And Filesystem Core
- Inferred role
- Core OS: operation-table or driver-model contract
- Status
- pattern 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 an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/ceph/ceph_debug.hlinux/ceph/osd_client.hlinux/unaligned.hlinux/backing-dev.hlinux/completion.hlinux/exportfs.hlinux/fs.hlinux/mempool.hlinux/pagemap.hlinux/wait.hlinux/writeback.hlinux/slab.hlinux/posix_acl.hlinux/refcount.hlinux/security.hlinux/netfs.hlinux/fscache.hlinux/hashtable.hlinux/ceph/libceph.hcrypto.h
Detected Declarations
struct ceph_mount_optionsstruct ceph_fs_clientstruct ceph_capstruct ceph_cap_flushstruct ceph_cap_snapstruct ceph_inode_fragstruct ceph_inode_xattrstruct ceph_dentry_infostruct ceph_inode_xattrs_infostruct ceph_inode_infostruct ceph_netfs_request_datastruct ceph_file_infostruct ceph_dir_file_infostruct ceph_rw_contextstruct ceph_readdir_cache_controlstruct ceph_snap_realmstruct ceph_mds_reply_info_instruct ceph_mds_reply_dirfragstruct ceph_acl_sec_ctxstruct ceph_iattrstruct ceph_acl_sec_ctxenum quota_get_realmfunction ceph_namespace_matchfunction namespace_equalsfunction ceph_put_cap_snapfunction ceph_inodefunction ceph_inode_to_fs_clientfunction ceph_sb_to_fs_clientfunction ceph_sb_to_mdscfunction ceph_inode_to_clientfunction ceph_vinofunction ceph_ino_to_ino32function ceph_vino_to_ino_tfunction ceph_inofunction ceph_snapfunction ceph_present_inofunction ceph_present_inodefunction ceph_ino_comparefunction ceph_vino_is_reservedfunction ceph_set_error_writefunction ceph_clear_error_writefunction __ceph_dir_set_completefunction __ceph_dir_clear_completefunction __ceph_dir_clear_orderedfunction __ceph_dir_is_completefunction __ceph_dir_is_complete_orderedfunction ceph_dir_clear_completefunction ceph_dir_clear_ordered
Annotated Snippet
extern const struct file_operations ceph_file_fops;
extern int ceph_renew_caps(struct inode *inode, int fmode);
extern int ceph_open(struct inode *inode, struct file *file);
extern int ceph_atomic_open(struct inode *dir, struct dentry *dentry,
struct file *file, unsigned flags, umode_t mode);
extern ssize_t __ceph_sync_read(struct inode *inode, loff_t *ki_pos,
struct iov_iter *to, int *retry_op,
u64 *last_objver);
extern int ceph_release(struct inode *inode, struct file *filp);
extern void ceph_fill_inline_data(struct inode *inode, struct page *locked_page,
char *data, size_t len);
/* dir.c */
extern const struct file_operations ceph_dir_fops;
extern const struct file_operations ceph_snapdir_fops;
extern const struct inode_operations ceph_dir_iops;
extern const struct inode_operations ceph_snapdir_iops;
extern const struct dentry_operations ceph_dentry_ops;
extern loff_t ceph_make_fpos(unsigned high, unsigned off, bool hash_order);
extern int ceph_handle_notrace_create(struct inode *dir, struct dentry *dentry);
extern struct dentry *ceph_handle_snapdir(struct ceph_mds_request *req,
struct dentry *dentry);
extern struct dentry *ceph_finish_lookup(struct ceph_mds_request *req,
struct dentry *dentry, int err);
extern void __ceph_dentry_lease_touch(struct ceph_dentry_info *di);
extern void __ceph_dentry_dir_lease_touch(struct ceph_dentry_info *di);
extern void ceph_invalidate_dentry_lease(struct dentry *dentry);
extern int ceph_trim_dentries(struct ceph_mds_client *mdsc);
extern unsigned ceph_dentry_hash(struct inode *dir, struct dentry *dn);
extern void ceph_readdir_cache_release(struct ceph_readdir_cache_control *ctl);
/* ioctl.c */
extern long ceph_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
/* export.c */
extern const struct export_operations ceph_export_ops;
struct inode *ceph_lookup_inode(struct super_block *sb, u64 ino);
/* locks.c */
extern __init void ceph_flock_init(void);
extern int ceph_lock(struct file *file, int cmd, struct file_lock *fl);
extern int ceph_flock(struct file *file, int cmd, struct file_lock *fl);
extern void ceph_count_locks(struct inode *inode, int *p_num, int *f_num);
extern int ceph_encode_locks_to_buffer(struct inode *inode,
struct ceph_filelock *flocks,
int num_fcntl_locks,
int num_flock_locks);
extern int ceph_locks_to_pagelist(struct ceph_filelock *flocks,
struct ceph_pagelist *pagelist,
int num_fcntl_locks, int num_flock_locks);
/* debugfs.c */
extern void ceph_fs_debugfs_init(struct ceph_fs_client *client);
extern void ceph_fs_debugfs_cleanup(struct ceph_fs_client *client);
/* quota.c */
enum quota_get_realm {
QUOTA_GET_MAX_FILES,
QUOTA_GET_MAX_BYTES,
QUOTA_GET_ANY
};
static inline bool __ceph_has_quota(struct ceph_inode_info *ci,
enum quota_get_realm which)
{
bool has_quota = false;
switch (which) {
case QUOTA_GET_MAX_BYTES:
has_quota = !!ci->i_max_bytes;
break;
case QUOTA_GET_MAX_FILES:
has_quota = !!ci->i_max_files;
break;
default:
has_quota = !!(ci->i_max_files || ci->i_max_bytes);
}
return has_quota;
}
extern void ceph_adjust_quota_realms_count(struct inode *inode, bool inc);
static inline void __ceph_update_quota(struct ceph_inode_info *ci,
u64 max_bytes, u64 max_files)
{
bool had_quota, has_quota;
Annotation
- Immediate include surface: `linux/ceph/ceph_debug.h`, `linux/ceph/osd_client.h`, `linux/unaligned.h`, `linux/backing-dev.h`, `linux/completion.h`, `linux/exportfs.h`, `linux/fs.h`, `linux/mempool.h`.
- Detected declarations: `struct ceph_mount_options`, `struct ceph_fs_client`, `struct ceph_cap`, `struct ceph_cap_flush`, `struct ceph_cap_snap`, `struct ceph_inode_frag`, `struct ceph_inode_xattr`, `struct ceph_dentry_info`, `struct ceph_inode_xattrs_info`, `struct ceph_inode_info`.
- Atlas domain: Core OS / VFS And Filesystem Core.
- Implementation status: pattern implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.