• Home
  • Raw
  • Download

Lines Matching refs:dir

12 adfs_fplus_read(struct super_block *sb, unsigned int id, unsigned int sz, struct adfs_dir *dir)  in adfs_fplus_read()  argument
20 dir->nr_buffers = 0; in adfs_fplus_read()
23 dir->bh_fplus = &dir->bh[0]; in adfs_fplus_read()
31 dir->bh_fplus[0] = sb_bread(sb, block); in adfs_fplus_read()
32 if (!dir->bh_fplus[0]) in adfs_fplus_read()
34 dir->nr_buffers += 1; in adfs_fplus_read()
36 h = (struct adfs_bigdirheader *)dir->bh_fplus[0]->b_data; in adfs_fplus_read()
52 if (size > ARRAY_SIZE(dir->bh)) { in adfs_fplus_read()
64 dir->bh_fplus = bh_fplus; in adfs_fplus_read()
66 dir->bh_fplus[0] = dir->bh[0]; in adfs_fplus_read()
76 dir->bh_fplus[blk] = sb_bread(sb, block); in adfs_fplus_read()
77 if (!dir->bh_fplus[blk]) { in adfs_fplus_read()
83 dir->nr_buffers += 1; in adfs_fplus_read()
87 (dir->bh_fplus[size - 1]->b_data + (sb->s_blocksize - 8)); in adfs_fplus_read()
96 dir->parent_id = le32_to_cpu(h->bigdirparent); in adfs_fplus_read()
97 dir->sb = sb; in adfs_fplus_read()
101 if (dir->bh_fplus) { in adfs_fplus_read()
102 for (i = 0; i < dir->nr_buffers; i++) in adfs_fplus_read()
103 brelse(dir->bh_fplus[i]); in adfs_fplus_read()
105 if (&dir->bh[0] != dir->bh_fplus) in adfs_fplus_read()
106 kfree(dir->bh_fplus); in adfs_fplus_read()
108 dir->bh_fplus = NULL; in adfs_fplus_read()
111 dir->nr_buffers = 0; in adfs_fplus_read()
112 dir->sb = NULL; in adfs_fplus_read()
117 adfs_fplus_setpos(struct adfs_dir *dir, unsigned int fpos) in adfs_fplus_setpos() argument
120 (struct adfs_bigdirheader *) dir->bh_fplus[0]->b_data; in adfs_fplus_setpos()
124 dir->pos = fpos; in adfs_fplus_setpos()
132 dir_memcpy(struct adfs_dir *dir, unsigned int offset, void *to, int len) in dir_memcpy() argument
134 struct super_block *sb = dir->sb; in dir_memcpy()
143 memcpy(to, dir->bh_fplus[buffer]->b_data + offset, len); in dir_memcpy()
150 dir->bh_fplus[buffer]->b_data + offset, in dir_memcpy()
154 dir->bh_fplus[buffer + 1]->b_data, in dir_memcpy()
160 adfs_fplus_getnext(struct adfs_dir *dir, struct object_info *obj) in adfs_fplus_getnext() argument
163 (struct adfs_bigdirheader *) dir->bh_fplus[0]->b_data; in adfs_fplus_getnext()
168 if (dir->pos >= le32_to_cpu(h->bigdirentries)) in adfs_fplus_getnext()
173 offset += dir->pos * sizeof(struct adfs_bigdirentry); in adfs_fplus_getnext()
175 dir_memcpy(dir, offset, &bde, sizeof(struct adfs_bigdirentry)); in adfs_fplus_getnext()
189 dir_memcpy(dir, offset, obj->name, obj->name_len); in adfs_fplus_getnext()
190 adfs_object_fixup(dir, obj); in adfs_fplus_getnext()
192 dir->pos += 1; in adfs_fplus_getnext()
199 adfs_fplus_sync(struct adfs_dir *dir) in adfs_fplus_sync() argument
204 for (i = dir->nr_buffers - 1; i >= 0; i--) { in adfs_fplus_sync()
205 struct buffer_head *bh = dir->bh_fplus[i]; in adfs_fplus_sync()
215 adfs_fplus_free(struct adfs_dir *dir) in adfs_fplus_free() argument
219 if (dir->bh_fplus) { in adfs_fplus_free()
220 for (i = 0; i < dir->nr_buffers; i++) in adfs_fplus_free()
221 brelse(dir->bh_fplus[i]); in adfs_fplus_free()
223 if (&dir->bh[0] != dir->bh_fplus) in adfs_fplus_free()
224 kfree(dir->bh_fplus); in adfs_fplus_free()
226 dir->bh_fplus = NULL; in adfs_fplus_free()
229 dir->nr_buffers = 0; in adfs_fplus_free()
230 dir->sb = NULL; in adfs_fplus_free()