47
47
#error invalid size AuSize_DEBLK
50
typedef char aufs_deblk_t[AuSize_DEBLK];
50
typedef char au_vdir_deblk_t[AuSize_DEBLK];
53
53
struct hlist_head heads[AuSize_NHASH];
56
struct au_vdir_destr {
62
struct hlist_node hash;
63
struct aufs_destr *str;
61
struct au_vdir_dehstr {
62
struct hlist_node hash;
63
struct au_vdir_destr *str;
68
68
unsigned char de_type;
69
69
/* caution: packed */
70
struct aufs_destr de_str;
70
struct au_vdir_destr de_str;
74
74
struct hlist_node wh_hash;
75
75
aufs_bindex_t wh_bindex;
76
76
#ifdef CONFIG_AUFS_SHWH
105
105
extern struct file_operations aufs_dir_fop;
106
106
int au_test_empty_lower(struct dentry *dentry);
107
int au_test_empty(struct dentry *dentry, struct aufs_nhash *whlist);
107
int au_test_empty(struct dentry *dentry, struct au_nhash *whlist);
108
108
void au_add_nlink(struct inode *dir, struct inode *h_dir);
109
109
void au_sub_nlink(struct inode *dir, struct inode *h_dir);
112
struct aufs_nhash *nhash_new(gfp_t gfp);
113
void nhash_del(struct aufs_nhash *nhash);
114
void nhash_init(struct aufs_nhash *nhash);
115
void nhash_move(struct aufs_nhash *dst, struct aufs_nhash *src);
116
void nhash_fin(struct aufs_nhash *nhash);
117
int nhash_test_longer_wh(struct aufs_nhash *whlist, aufs_bindex_t btgt,
112
struct au_nhash *nhash_new(gfp_t gfp);
113
void nhash_del(struct au_nhash *nhash);
114
void nhash_init(struct au_nhash *nhash);
115
void nhash_move(struct au_nhash *dst, struct au_nhash *src);
116
void nhash_fin(struct au_nhash *nhash);
117
int nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
119
int nhash_test_known_wh(struct aufs_nhash *whlist, char *name, int namelen);
120
int nhash_append_wh(struct aufs_nhash *whlist, char *name, int namelen,
119
int nhash_test_known_wh(struct au_nhash *whlist, char *name, int namelen);
120
int nhash_append_wh(struct au_nhash *whlist, char *name, int namelen,
121
121
ino_t ino, unsigned int d_type, aufs_bindex_t bindex,
122
122
unsigned char shwh);
123
void au_vdir_free(struct aufs_vdir *vdir);
123
void au_vdir_free(struct au_vdir *vdir);
124
124
int au_vdir_init(struct file *file);
125
125
int au_fill_de(struct file *file, void *dirent, filldir_t filldir);