5 * An abbreviated version of the SEGUSE data structure.
16 * The cleaner's view of the superblock data structure.
19 struct dlfs lfs_dlfs
; /* Leverage LFS lfs_* defines here */
22 int clfs_ifilefd
; /* Ifile file descriptor */
23 struct uvnode
*lfs_ivnode
; /* Ifile vnode */
24 struct lfs_fhandle clfs_ifilefh
; /* Ifile file handle */
27 int clfs_devfd
; /* Device file descriptor */
28 struct uvnode
*clfs_devvp
; /* Device vnode */
29 char *clfs_dev
; /* Name of device */
31 /* Cache of segment status */
32 struct clfs_seguse
*clfs_segtab
; /* Abbreviated seguse table */
33 struct clfs_seguse
**clfs_segtabp
; /* pointers to same */
36 int clfs_nactive
; /* How many segments' blocks we have */
37 int clfs_onhold
; /* If cleaning this fs is on hold */
41 * Fraction of the could-be-clean segments required to be clean.
49 void pwarn(const char *, ...);
50 void calc_cb(struct clfs
*, int, struct clfs_seguse
*);
51 int clean_fs(struct clfs
*, CLEANERINFO
*);
52 void dlog(const char *, ...);
53 void handle_error(struct clfs
**, int);
54 int init_fs(struct clfs
*, char *);
55 int invalidate_segment(struct clfs
*, int);
56 void lfs_ientry(IFILE
**, struct clfs
*, ino_t
, struct ubuf
**);
57 int load_segment(struct clfs
*, int, BLOCK_INFO
**, int *);
58 int needs_cleaning(struct clfs
*, CLEANERINFO
*);
59 int32_t parse_pseg(struct clfs
*, daddr_t
, BLOCK_INFO
**, int *);
60 int reinit_fs(struct clfs
*);
61 void reload_ifile(struct clfs
*);
62 void toss_old_blocks(struct clfs
*, BLOCK_INFO
**, int *, int *);
65 void check_control_socket(void);
66 void try_to_become_master(int, char **);
70 int clean_all_inodes(struct clfs
*);
71 int fork_coalesce(struct clfs
*);
75 #endif /* CLEANER_H_ */