fs/gfs2/rgrp.h

Source file repositories/reference/linux-study-clean/fs/gfs2/rgrp.h

File Facts

System
Linux kernel
Corpus path
fs/gfs2/rgrp.h
Extension
.h
Size
3241 bytes
Lines
98
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct gfs2_rgrp_list {
	unsigned int rl_rgrps;
	unsigned int rl_space;
	struct gfs2_rgrpd **rl_rgd;
	struct gfs2_holder *rl_ghs;
};

void gfs2_rlist_add(struct gfs2_inode *ip, struct gfs2_rgrp_list *rlist,
		    u64 block);
void gfs2_rlist_alloc(struct gfs2_rgrp_list *rlist,
		      unsigned int state, u16 flags);
void gfs2_rlist_free(struct gfs2_rgrp_list *rlist);
u64 gfs2_ri_total(struct gfs2_sbd *sdp);
void gfs2_rgrp_dump(struct seq_file *seq, struct gfs2_rgrpd *rgd,
		    const char *fs_id_buf);
int gfs2_rgrp_send_discards(struct gfs2_sbd *sdp, u64 offset,
			    struct buffer_head *bh,
			    const struct gfs2_bitmap *bi, unsigned minlen,
			    u64 *ptrimmed);
int gfs2_fitrim(struct file *filp, void __user *argp);

/* This is how to tell if a reservation is in the rgrp tree: */
static inline bool gfs2_rs_active(const struct gfs2_blkreserv *rs)
{
	return !RB_EMPTY_NODE(&rs->rs_node);
}

static inline int rgrp_contains_block(struct gfs2_rgrpd *rgd, u64 block)
{
	u64 first = rgd->rd_data0;
	u64 last = first + rgd->rd_data;
	return first <= block && block < last;
}

void check_and_update_goal(struct gfs2_inode *ip);

void rgrp_lock_local(struct gfs2_rgrpd *rgd);
void rgrp_unlock_local(struct gfs2_rgrpd *rgd);

#endif /* __RGRP_DOT_H__ */

Annotation

Implementation Notes