Lines Matching refs:rdir
98 if (!fid->rdir) in v9fs_alloc_rdir_buf()
99 fid->rdir = kzalloc(sizeof(struct p9_rdir) + buflen, GFP_KERNEL); in v9fs_alloc_rdir_buf()
100 return fid->rdir; in v9fs_alloc_rdir_buf()
118 struct p9_rdir *rdir; in v9fs_dir_readdir() local
126 rdir = v9fs_alloc_rdir_buf(file, buflen); in v9fs_dir_readdir()
127 if (!rdir) in v9fs_dir_readdir()
129 kvec.iov_base = rdir->buf; in v9fs_dir_readdir()
133 if (rdir->tail == rdir->head) { in v9fs_dir_readdir()
144 rdir->head = 0; in v9fs_dir_readdir()
145 rdir->tail = n; in v9fs_dir_readdir()
147 while (rdir->head < rdir->tail) { in v9fs_dir_readdir()
149 err = p9stat_read(fid->clnt, rdir->buf + rdir->head, in v9fs_dir_readdir()
150 rdir->tail - rdir->head, &st); in v9fs_dir_readdir()
164 rdir->head += reclen; in v9fs_dir_readdir()
181 struct p9_rdir *rdir; in v9fs_dir_readdir_dotl() local
189 rdir = v9fs_alloc_rdir_buf(file, buflen); in v9fs_dir_readdir_dotl()
190 if (!rdir) in v9fs_dir_readdir_dotl()
194 if (rdir->tail == rdir->head) { in v9fs_dir_readdir_dotl()
195 err = p9_client_readdir(fid, rdir->buf, buflen, in v9fs_dir_readdir_dotl()
200 rdir->head = 0; in v9fs_dir_readdir_dotl()
201 rdir->tail = err; in v9fs_dir_readdir_dotl()
204 while (rdir->head < rdir->tail) { in v9fs_dir_readdir_dotl()
206 err = p9dirent_read(fid->clnt, rdir->buf + rdir->head, in v9fs_dir_readdir_dotl()
207 rdir->tail - rdir->head, in v9fs_dir_readdir_dotl()
221 rdir->head += err; in v9fs_dir_readdir_dotl()