dfi 107 fs/ceph/dir.c static int note_last_dentry(struct ceph_dir_file_info *dfi, const char *name, dfi 113 fs/ceph/dir.c kfree(dfi->last_name); dfi 114 fs/ceph/dir.c dfi->last_name = buf; dfi 115 fs/ceph/dir.c memcpy(dfi->last_name, name, len); dfi 116 fs/ceph/dir.c dfi->last_name[len] = 0; dfi 117 fs/ceph/dir.c dfi->next_offset = next_offset; dfi 118 fs/ceph/dir.c dout("note_last_dentry '%s'\n", dfi->last_name); dfi 180 fs/ceph/dir.c struct ceph_dir_file_info *dfi = file->private_data; dfi 227 fs/ceph/dir.c dfi->file_info.flags |= CEPH_F_ATEND; dfi 279 fs/ceph/dir.c ret = note_last_dentry(dfi, last->d_name.name, last->d_name.len, dfi 285 fs/ceph/dir.c if (dfi->readdir_cache_idx >= 0) { dfi 286 fs/ceph/dir.c dfi->readdir_cache_idx = -1; dfi 287 fs/ceph/dir.c dfi->dir_release_count = 0; dfi 293 fs/ceph/dir.c static bool need_send_readdir(struct ceph_dir_file_info *dfi, loff_t pos) dfi 295 fs/ceph/dir.c if (!dfi->last_readdir) dfi 298 fs/ceph/dir.c return !ceph_frag_contains_value(dfi->frag, fpos_hash(pos)); dfi 300 fs/ceph/dir.c return dfi->frag != fpos_frag(pos); dfi 305 fs/ceph/dir.c struct ceph_dir_file_info *dfi = file->private_data; dfi 316 fs/ceph/dir.c if (dfi->file_info.flags & CEPH_F_ATEND) dfi 357 fs/ceph/dir.c if (need_send_readdir(dfi, ctx->pos)) { dfi 363 fs/ceph/dir.c if (dfi->last_readdir) { dfi 364 fs/ceph/dir.c ceph_mdsc_put_request(dfi->last_readdir); dfi 365 fs/ceph/dir.c dfi->last_readdir = NULL; dfi 379 fs/ceph/dir.c ceph_vinop(inode), frag, dfi->last_name); dfi 395 fs/ceph/dir.c if (dfi->last_name) { dfi 396 fs/ceph/dir.c req->r_path2 = kstrdup(dfi->last_name, GFP_KERNEL); dfi 406 fs/ceph/dir.c req->r_dir_release_cnt = dfi->dir_release_count; dfi 407 fs/ceph/dir.c req->r_dir_ordered_cnt = dfi->dir_ordered_count; dfi 408 fs/ceph/dir.c req->r_readdir_cache_idx = dfi->readdir_cache_idx; dfi 409 fs/ceph/dir.c req->r_readdir_offset = dfi->next_offset; dfi 433 fs/ceph/dir.c dfi->next_offset = req->r_readdir_offset; dfi 436 fs/ceph/dir.c dfi->next_offset, dfi 441 fs/ceph/dir.c dfi->frag = frag; dfi 442 fs/ceph/dir.c dfi->last_readdir = req; dfi 445 fs/ceph/dir.c dfi->readdir_cache_idx = req->r_readdir_cache_idx; dfi 446 fs/ceph/dir.c if (dfi->readdir_cache_idx < 0) { dfi 448 fs/ceph/dir.c dfi->dir_ordered_count = 0; dfi 450 fs/ceph/dir.c dfi->next_offset == 2) { dfi 453 fs/ceph/dir.c dfi->dir_release_count = req->r_dir_release_cnt; dfi 454 fs/ceph/dir.c dfi->dir_ordered_count = req->r_dir_ordered_cnt; dfi 459 fs/ceph/dir.c dfi->readdir_cache_idx = -1; dfi 461 fs/ceph/dir.c dfi->dir_release_count = 0; dfi 470 fs/ceph/dir.c err = note_last_dentry(dfi, rde->name, rde->name_len, dfi 475 fs/ceph/dir.c dfi->next_offset = 2; dfi 480 fs/ceph/dir.c rinfo = &dfi->last_readdir->r_reply_info; dfi 482 fs/ceph/dir.c dfi->frag, rinfo->dir_nr, ctx->pos, dfi 526 fs/ceph/dir.c ceph_mdsc_put_request(dfi->last_readdir); dfi 527 fs/ceph/dir.c dfi->last_readdir = NULL; dfi 529 fs/ceph/dir.c if (dfi->next_offset > 2) { dfi 530 fs/ceph/dir.c frag = dfi->frag; dfi 535 fs/ceph/dir.c if (!ceph_frag_is_rightmost(dfi->frag)) { dfi 536 fs/ceph/dir.c frag = ceph_frag_next(dfi->frag); dfi 539 fs/ceph/dir.c dfi->next_offset, true); dfi 544 fs/ceph/dir.c ctx->pos = ceph_make_fpos(frag, dfi->next_offset, dfi 546 fs/ceph/dir.c kfree(dfi->last_name); dfi 547 fs/ceph/dir.c dfi->last_name = NULL; dfi 552 fs/ceph/dir.c dfi->file_info.flags |= CEPH_F_ATEND; dfi 560 fs/ceph/dir.c dfi->dir_release_count) { dfi 562 fs/ceph/dir.c if (dfi->dir_ordered_count == dfi 567 fs/ceph/dir.c BUG_ON(dfi->readdir_cache_idx < 0); dfi 568 fs/ceph/dir.c i_size_write(inode, dfi->readdir_cache_idx * dfi 573 fs/ceph/dir.c __ceph_dir_set_complete(ci, dfi->dir_release_count, dfi 574 fs/ceph/dir.c dfi->dir_ordered_count); dfi 582 fs/ceph/dir.c static void reset_readdir(struct ceph_dir_file_info *dfi) dfi 584 fs/ceph/dir.c if (dfi->last_readdir) { dfi 585 fs/ceph/dir.c ceph_mdsc_put_request(dfi->last_readdir); dfi 586 fs/ceph/dir.c dfi->last_readdir = NULL; dfi 588 fs/ceph/dir.c kfree(dfi->last_name); dfi 589 fs/ceph/dir.c dfi->last_name = NULL; dfi 590 fs/ceph/dir.c dfi->dir_release_count = 0; dfi 591 fs/ceph/dir.c dfi->readdir_cache_idx = -1; dfi 592 fs/ceph/dir.c dfi->next_offset = 2; /* compensate for . and .. */ dfi 593 fs/ceph/dir.c dfi->file_info.flags &= ~CEPH_F_ATEND; dfi 600 fs/ceph/dir.c static bool need_reset_readdir(struct ceph_dir_file_info *dfi, loff_t new_pos) dfi 609 fs/ceph/dir.c } else if (dfi->frag != fpos_frag(new_pos)) { dfi 612 fs/ceph/dir.c rinfo = dfi->last_readdir ? &dfi->last_readdir->r_reply_info : NULL; dfi 622 fs/ceph/dir.c struct ceph_dir_file_info *dfi = file->private_data; dfi 640 fs/ceph/dir.c if (need_reset_readdir(dfi, offset)) { dfi 642 fs/ceph/dir.c reset_readdir(dfi); dfi 646 fs/ceph/dir.c dfi->dir_release_count = 0; dfi 647 fs/ceph/dir.c dfi->readdir_cache_idx = -1; dfi 653 fs/ceph/dir.c dfi->file_info.flags &= ~CEPH_F_ATEND; dfi 1736 fs/ceph/dir.c struct ceph_dir_file_info *dfi = file->private_data; dfi 1745 fs/ceph/dir.c if (!dfi->dir_info) { dfi 1746 fs/ceph/dir.c dfi->dir_info = kmalloc(bufsize, GFP_KERNEL); dfi 1747 fs/ceph/dir.c if (!dfi->dir_info) dfi 1749 fs/ceph/dir.c dfi->dir_info_len = dfi 1750 fs/ceph/dir.c snprintf(dfi->dir_info, bufsize, dfi 1770 fs/ceph/dir.c if (*ppos >= dfi->dir_info_len) dfi 1772 fs/ceph/dir.c size = min_t(unsigned, size, dfi->dir_info_len-*ppos); dfi 1773 fs/ceph/dir.c left = copy_to_user(buf, dfi->dir_info + *ppos, size); dfi 213 fs/ceph/file.c struct ceph_dir_file_info *dfi = dfi 215 fs/ceph/file.c if (!dfi) { dfi 220 fs/ceph/file.c file->private_data = dfi; dfi 221 fs/ceph/file.c fi = &dfi->file_info; dfi 222 fs/ceph/file.c dfi->next_offset = 2; dfi 223 fs/ceph/file.c dfi->readdir_cache_idx = -1; dfi 541 fs/ceph/file.c struct ceph_dir_file_info *dfi = file->private_data; dfi 543 fs/ceph/file.c WARN_ON(!list_empty(&dfi->file_info.rw_contexts)); dfi 545 fs/ceph/file.c ceph_put_fmode(ci, dfi->file_info.fmode); dfi 547 fs/ceph/file.c if (dfi->last_readdir) dfi 548 fs/ceph/file.c ceph_mdsc_put_request(dfi->last_readdir); dfi 549 fs/ceph/file.c kfree(dfi->last_name); dfi 550 fs/ceph/file.c kfree(dfi->dir_info); dfi 551 fs/ceph/file.c kmem_cache_free(ceph_dir_file_cachep, dfi); dfi 338 fs/udf/inode.c struct fileIdentDesc cfi, *sfi, *dfi; dfi 389 fs/udf/inode.c dfi = (struct fileIdentDesc *)(dbh->b_data + dfibh.soffset); dfi 390 fs/udf/inode.c if (udf_write_fi(inode, sfi, dfi, &dfibh, sfi->impUse,