• Home
  • Raw
  • Download

Lines Matching refs:req

311 		struct ceph_mds_request *req;  in ceph_readdir()  local
326 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_readdir()
327 if (IS_ERR(req)) in ceph_readdir()
328 return PTR_ERR(req); in ceph_readdir()
329 req->r_inode = inode; in ceph_readdir()
331 req->r_dentry = dget(filp->f_dentry); in ceph_readdir()
333 req->r_direct_mode = USE_AUTH_MDS; in ceph_readdir()
334 req->r_direct_hash = ceph_frag_value(frag); in ceph_readdir()
335 req->r_direct_is_hash = true; in ceph_readdir()
336 req->r_path2 = kstrdup(fi->last_name, GFP_NOFS); in ceph_readdir()
337 req->r_readdir_offset = fi->next_offset; in ceph_readdir()
338 req->r_args.readdir.frag = cpu_to_le32(frag); in ceph_readdir()
339 req->r_args.readdir.max_entries = cpu_to_le32(max_entries); in ceph_readdir()
340 req->r_args.readdir.max_bytes = cpu_to_le32(max_bytes); in ceph_readdir()
341 req->r_num_caps = max_entries + 1; in ceph_readdir()
342 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_readdir()
344 ceph_mdsc_put_request(req); in ceph_readdir()
349 (int)req->r_reply_info.dir_end, in ceph_readdir()
350 (int)req->r_reply_info.dir_complete); in ceph_readdir()
352 if (!req->r_did_prepopulate) { in ceph_readdir()
359 fi->last_readdir = req; in ceph_readdir()
361 if (req->r_reply_info.dir_end) { in ceph_readdir()
369 rinfo = &req->r_reply_info; in ceph_readdir()
510 int ceph_handle_snapdir(struct ceph_mds_request *req, in ceph_handle_snapdir() argument
542 struct dentry *ceph_finish_lookup(struct ceph_mds_request *req, in ceph_finish_lookup() argument
548 if (!req->r_reply_info.head->is_dentry) { in ceph_finish_lookup()
561 else if (dentry != req->r_dentry) in ceph_finish_lookup()
562 dentry = dget(req->r_dentry); /* we got spliced */ in ceph_finish_lookup()
583 struct ceph_mds_request *req; in ceph_lookup() local
629 req = ceph_mdsc_create_request(mdsc, op, USE_ANY_MDS); in ceph_lookup()
630 if (IS_ERR(req)) in ceph_lookup()
631 return ERR_CAST(req); in ceph_lookup()
632 req->r_dentry = dget(dentry); in ceph_lookup()
633 req->r_num_caps = 2; in ceph_lookup()
635 req->r_args.getattr.mask = cpu_to_le32(CEPH_STAT_CAP_INODE); in ceph_lookup()
636 req->r_locked_dir = dir; in ceph_lookup()
637 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_lookup()
638 err = ceph_handle_snapdir(req, dentry, err); in ceph_lookup()
639 dentry = ceph_finish_lookup(req, dentry, err); in ceph_lookup()
640 ceph_mdsc_put_request(req); /* will dput(dentry) */ in ceph_lookup()
673 struct ceph_mds_request *req; in ceph_mknod() local
681 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_MKNOD, USE_AUTH_MDS); in ceph_mknod()
682 if (IS_ERR(req)) { in ceph_mknod()
684 return PTR_ERR(req); in ceph_mknod()
686 req->r_dentry = dget(dentry); in ceph_mknod()
687 req->r_num_caps = 2; in ceph_mknod()
688 req->r_locked_dir = dir; in ceph_mknod()
689 req->r_args.mknod.mode = cpu_to_le32(mode); in ceph_mknod()
690 req->r_args.mknod.rdev = cpu_to_le32(rdev); in ceph_mknod()
691 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_mknod()
692 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_mknod()
693 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_mknod()
694 if (!err && !req->r_reply_info.head->is_dentry) in ceph_mknod()
696 ceph_mdsc_put_request(req); in ceph_mknod()
729 struct ceph_mds_request *req; in ceph_symlink() local
736 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_SYMLINK, USE_AUTH_MDS); in ceph_symlink()
737 if (IS_ERR(req)) { in ceph_symlink()
739 return PTR_ERR(req); in ceph_symlink()
741 req->r_dentry = dget(dentry); in ceph_symlink()
742 req->r_num_caps = 2; in ceph_symlink()
743 req->r_path2 = kstrdup(dest, GFP_NOFS); in ceph_symlink()
744 req->r_locked_dir = dir; in ceph_symlink()
745 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_symlink()
746 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_symlink()
747 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_symlink()
748 if (!err && !req->r_reply_info.head->is_dentry) in ceph_symlink()
750 ceph_mdsc_put_request(req); in ceph_symlink()
760 struct ceph_mds_request *req; in ceph_mkdir() local
775 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_mkdir()
776 if (IS_ERR(req)) { in ceph_mkdir()
777 err = PTR_ERR(req); in ceph_mkdir()
781 req->r_dentry = dget(dentry); in ceph_mkdir()
782 req->r_num_caps = 2; in ceph_mkdir()
783 req->r_locked_dir = dir; in ceph_mkdir()
784 req->r_args.mkdir.mode = cpu_to_le32(mode); in ceph_mkdir()
785 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_mkdir()
786 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_mkdir()
787 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_mkdir()
788 if (!err && !req->r_reply_info.head->is_dentry) in ceph_mkdir()
790 ceph_mdsc_put_request(req); in ceph_mkdir()
802 struct ceph_mds_request *req; in ceph_link() local
810 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_LINK, USE_AUTH_MDS); in ceph_link()
811 if (IS_ERR(req)) { in ceph_link()
813 return PTR_ERR(req); in ceph_link()
815 req->r_dentry = dget(dentry); in ceph_link()
816 req->r_num_caps = 2; in ceph_link()
817 req->r_old_dentry = dget(old_dentry); /* or inode? hrm. */ in ceph_link()
818 req->r_old_dentry_dir = ceph_get_dentry_parent_inode(old_dentry); in ceph_link()
819 req->r_locked_dir = dir; in ceph_link()
820 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_link()
821 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_link()
822 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_link()
825 } else if (!req->r_reply_info.head->is_dentry) { in ceph_link()
829 ceph_mdsc_put_request(req); in ceph_link()
861 struct ceph_mds_request *req; in ceph_unlink() local
877 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_unlink()
878 if (IS_ERR(req)) { in ceph_unlink()
879 err = PTR_ERR(req); in ceph_unlink()
882 req->r_dentry = dget(dentry); in ceph_unlink()
883 req->r_num_caps = 2; in ceph_unlink()
884 req->r_locked_dir = dir; in ceph_unlink()
885 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_unlink()
886 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_unlink()
887 req->r_inode_drop = drop_caps_for_unlink(inode); in ceph_unlink()
888 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_unlink()
889 if (!err && !req->r_reply_info.head->is_dentry) in ceph_unlink()
891 ceph_mdsc_put_request(req); in ceph_unlink()
901 struct ceph_mds_request *req; in ceph_rename() local
911 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_RENAME, USE_AUTH_MDS); in ceph_rename()
912 if (IS_ERR(req)) in ceph_rename()
913 return PTR_ERR(req); in ceph_rename()
914 req->r_dentry = dget(new_dentry); in ceph_rename()
915 req->r_num_caps = 2; in ceph_rename()
916 req->r_old_dentry = dget(old_dentry); in ceph_rename()
917 req->r_old_dentry_dir = ceph_get_dentry_parent_inode(old_dentry); in ceph_rename()
918 req->r_locked_dir = new_dir; in ceph_rename()
919 req->r_old_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_rename()
920 req->r_old_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_rename()
921 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_rename()
922 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_rename()
924 req->r_old_inode_drop = CEPH_CAP_LINK_SHARED; in ceph_rename()
926 req->r_inode_drop = drop_caps_for_unlink(new_dentry->d_inode); in ceph_rename()
927 err = ceph_mdsc_do_request(mdsc, old_dir, req); in ceph_rename()
928 if (!err && !req->r_reply_info.head->is_dentry) { in ceph_rename()
944 ceph_mdsc_put_request(req); in ceph_rename()
1219 struct ceph_mds_request *req; in ceph_dir_fsync() local
1233 req = list_entry(head->prev, in ceph_dir_fsync()
1235 last_tid = req->r_tid; in ceph_dir_fsync()
1238 ceph_mdsc_get_request(req); in ceph_dir_fsync()
1242 inode, req->r_tid, last_tid); in ceph_dir_fsync()
1243 if (req->r_timeout) { in ceph_dir_fsync()
1245 &req->r_safe_completion, req->r_timeout); in ceph_dir_fsync()
1251 wait_for_completion(&req->r_safe_completion); in ceph_dir_fsync()
1253 ceph_mdsc_put_request(req); in ceph_dir_fsync()
1258 req = list_entry(head->next, in ceph_dir_fsync()
1260 } while (req->r_tid < last_tid); in ceph_dir_fsync()