Lines Matching refs:dir
16 adfs_fplus_read(struct super_block *sb, unsigned int id, unsigned int sz, struct adfs_dir *dir) in adfs_fplus_read() argument
24 dir->nr_buffers = 0; in adfs_fplus_read()
27 dir->bh_fplus = &dir->bh[0]; in adfs_fplus_read()
35 dir->bh_fplus[0] = sb_bread(sb, block); in adfs_fplus_read()
36 if (!dir->bh_fplus[0]) in adfs_fplus_read()
38 dir->nr_buffers += 1; in adfs_fplus_read()
40 h = (struct adfs_bigdirheader *)dir->bh_fplus[0]->b_data; in adfs_fplus_read()
58 if (size > ARRAY_SIZE(dir->bh)) { in adfs_fplus_read()
69 dir->bh_fplus = bh_fplus; in adfs_fplus_read()
71 dir->bh_fplus[0] = dir->bh[0]; in adfs_fplus_read()
81 dir->bh_fplus[blk] = sb_bread(sb, block); in adfs_fplus_read()
82 if (!dir->bh_fplus[blk]) { in adfs_fplus_read()
88 dir->nr_buffers += 1; in adfs_fplus_read()
92 (dir->bh_fplus[size - 1]->b_data + (sb->s_blocksize - 8)); in adfs_fplus_read()
102 dir->parent_id = le32_to_cpu(h->bigdirparent); in adfs_fplus_read()
103 dir->sb = sb; in adfs_fplus_read()
107 if (dir->bh_fplus) { in adfs_fplus_read()
108 for (i = 0; i < dir->nr_buffers; i++) in adfs_fplus_read()
109 brelse(dir->bh_fplus[i]); in adfs_fplus_read()
111 if (&dir->bh[0] != dir->bh_fplus) in adfs_fplus_read()
112 kfree(dir->bh_fplus); in adfs_fplus_read()
114 dir->bh_fplus = NULL; in adfs_fplus_read()
117 dir->nr_buffers = 0; in adfs_fplus_read()
118 dir->sb = NULL; in adfs_fplus_read()
123 adfs_fplus_setpos(struct adfs_dir *dir, unsigned int fpos) in adfs_fplus_setpos() argument
126 (struct adfs_bigdirheader *) dir->bh_fplus[0]->b_data; in adfs_fplus_setpos()
130 dir->pos = fpos; in adfs_fplus_setpos()
138 dir_memcpy(struct adfs_dir *dir, unsigned int offset, void *to, int len) in dir_memcpy() argument
140 struct super_block *sb = dir->sb; in dir_memcpy()
149 memcpy(to, dir->bh_fplus[buffer]->b_data + offset, len); in dir_memcpy()
156 dir->bh_fplus[buffer]->b_data + offset, in dir_memcpy()
160 dir->bh_fplus[buffer + 1]->b_data, in dir_memcpy()
166 adfs_fplus_getnext(struct adfs_dir *dir, struct object_info *obj) in adfs_fplus_getnext() argument
169 (struct adfs_bigdirheader *) dir->bh_fplus[0]->b_data; in adfs_fplus_getnext()
174 if (dir->pos >= le32_to_cpu(h->bigdirentries)) in adfs_fplus_getnext()
179 offset += dir->pos * sizeof(struct adfs_bigdirentry); in adfs_fplus_getnext()
181 dir_memcpy(dir, offset, &bde, sizeof(struct adfs_bigdirentry)); in adfs_fplus_getnext()
195 dir_memcpy(dir, offset, obj->name, obj->name_len); in adfs_fplus_getnext()
211 if (ADFS_SB(dir->sb)->s_ftsuffix) in adfs_fplus_getnext()
218 dir->pos += 1; in adfs_fplus_getnext()
225 adfs_fplus_sync(struct adfs_dir *dir) in adfs_fplus_sync() argument
230 for (i = dir->nr_buffers - 1; i >= 0; i--) { in adfs_fplus_sync()
231 struct buffer_head *bh = dir->bh_fplus[i]; in adfs_fplus_sync()
241 adfs_fplus_free(struct adfs_dir *dir) in adfs_fplus_free() argument
245 if (dir->bh_fplus) { in adfs_fplus_free()
246 for (i = 0; i < dir->nr_buffers; i++) in adfs_fplus_free()
247 brelse(dir->bh_fplus[i]); in adfs_fplus_free()
249 if (&dir->bh[0] != dir->bh_fplus) in adfs_fplus_free()
250 kfree(dir->bh_fplus); in adfs_fplus_free()
252 dir->bh_fplus = NULL; in adfs_fplus_free()
255 dir->nr_buffers = 0; in adfs_fplus_free()
256 dir->sb = NULL; in adfs_fplus_free()