Lines Matching refs:od

62 static int do_readdir(struct orangefs_dir *od, struct inode *inode,  in do_readdir()  argument
77 op->upcall.req.readdir.token = od->token; in do_readdir()
84 od->error = bufi; in do_readdir()
101 od->error = r; in do_readdir()
108 od->error = r; in do_readdir()
112 od->error = op->downcall.status; in do_readdir()
122 od->error = -EIO; in do_readdir()
128 od->token = resp->token; in do_readdir()
132 static int parse_readdir(struct orangefs_dir *od, in parse_readdir() argument
139 part = od->part; in parse_readdir()
152 if (!od->part) in parse_readdir()
153 od->part = new; in parse_readdir()
157 od->end = count << PART_SHIFT; in parse_readdir()
162 static int orangefs_dir_more(struct orangefs_dir *od, struct inode *inode) in orangefs_dir_more() argument
169 od->error = -ENOMEM; in orangefs_dir_more()
172 r = do_readdir(od, inode, op); in orangefs_dir_more()
174 od->error = r; in orangefs_dir_more()
177 r = parse_readdir(od, op); in orangefs_dir_more()
179 od->error = r; in orangefs_dir_more()
183 od->error = 0; in orangefs_dir_more()
186 return od->error; in orangefs_dir_more()
241 static int orangefs_dir_fill(struct orangefs_dir *od, struct dir_context *ctx) in orangefs_dir_fill() argument
248 part = od->part; in orangefs_dir_fill()
255 od->error = -EIO; in orangefs_dir_fill()
263 od->error = r; in orangefs_dir_fill()
283 struct orangefs_dir *od = file->private_data; in orangefs_dir_llseek() local
288 if (!whence && offset < od->end) { in orangefs_dir_llseek()
289 struct orangefs_dir_part *part = od->part; in orangefs_dir_llseek()
295 od->token = ORANGEFS_ITERATE_START; in orangefs_dir_llseek()
296 od->part = NULL; in orangefs_dir_llseek()
297 od->end = 1 << PART_SHIFT; in orangefs_dir_llseek()
305 struct orangefs_dir *od = file->private_data; in orangefs_dir_iterate() local
309 if (od->error) in orangefs_dir_iterate()
310 return od->error; in orangefs_dir_iterate()
336 while (od->token != ORANGEFS_ITERATE_END && in orangefs_dir_iterate()
337 ctx->pos > od->end) { in orangefs_dir_iterate()
338 r = orangefs_dir_more(od, inode); in orangefs_dir_iterate()
342 if (od->token == ORANGEFS_ITERATE_END && ctx->pos > od->end) in orangefs_dir_iterate()
346 if (ctx->pos < od->end) { in orangefs_dir_iterate()
347 r = orangefs_dir_fill(od, ctx); in orangefs_dir_iterate()
353 if (od->token != ORANGEFS_ITERATE_END) { in orangefs_dir_iterate()
354 r = orangefs_dir_more(od, inode); in orangefs_dir_iterate()
357 r = orangefs_dir_fill(od, ctx); in orangefs_dir_iterate()
365 struct orangefs_dir *od; in orangefs_dir_open() local
369 od = file->private_data; in orangefs_dir_open()
370 od->token = ORANGEFS_ITERATE_START; in orangefs_dir_open()
371 od->part = NULL; in orangefs_dir_open()
372 od->end = 1 << PART_SHIFT; in orangefs_dir_open()
373 od->error = 0; in orangefs_dir_open()
379 struct orangefs_dir *od = file->private_data; in orangefs_dir_release() local
380 struct orangefs_dir_part *part = od->part; in orangefs_dir_release()
386 kfree(od); in orangefs_dir_release()