Lines Matching refs:ctl
129 struct smb_cache_control ctl = *ctrl; in smb_fill_cache() local
167 newdent->d_fsdata = (void *) ctl.fpos; in smb_fill_cache()
171 if (ctl.idx >= SMB_DIRCACHE_SIZE) { in smb_fill_cache()
172 if (ctl.page) { in smb_fill_cache()
173 kunmap(ctl.page); in smb_fill_cache()
174 SetPageUptodate(ctl.page); in smb_fill_cache()
175 unlock_page(ctl.page); in smb_fill_cache()
176 page_cache_release(ctl.page); in smb_fill_cache()
178 ctl.cache = NULL; in smb_fill_cache()
179 ctl.idx -= SMB_DIRCACHE_SIZE; in smb_fill_cache()
180 ctl.ofs += 1; in smb_fill_cache()
181 ctl.page = grab_cache_page(&inode->i_data, ctl.ofs); in smb_fill_cache()
182 if (ctl.page) in smb_fill_cache()
183 ctl.cache = kmap(ctl.page); in smb_fill_cache()
185 if (ctl.cache) { in smb_fill_cache()
186 ctl.cache->dentry[ctl.idx] = newdent; in smb_fill_cache()
193 ctl.valid = 0; in smb_fill_cache()
194 if (!ctl.filled && (ctl.fpos == filp->f_pos)) { in smb_fill_cache()
199 ctl.filled = filldir(dirent, qname->name, qname->len, in smb_fill_cache()
201 if (!ctl.filled) in smb_fill_cache()
204 ctl.fpos += 1; in smb_fill_cache()
205 ctl.idx += 1; in smb_fill_cache()
206 *ctrl = ctl; in smb_fill_cache()
207 return (ctl.valid || !ctl.filled); in smb_fill_cache()