Lines Matching refs:req

314 		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 err = ceph_alloc_readdir_reply_buffer(req, inode); in ceph_readdir()
331 ceph_mdsc_put_request(req); in ceph_readdir()
335 req->r_direct_mode = USE_AUTH_MDS; in ceph_readdir()
336 req->r_direct_hash = ceph_frag_value(frag); in ceph_readdir()
337 req->r_direct_is_hash = true; in ceph_readdir()
339 req->r_path2 = kstrdup(fi->last_name, GFP_KERNEL); in ceph_readdir()
340 if (!req->r_path2) { in ceph_readdir()
341 ceph_mdsc_put_request(req); in ceph_readdir()
345 req->r_dir_release_cnt = fi->dir_release_count; in ceph_readdir()
346 req->r_dir_ordered_cnt = fi->dir_ordered_count; in ceph_readdir()
347 req->r_readdir_cache_idx = fi->readdir_cache_idx; in ceph_readdir()
348 req->r_readdir_offset = fi->next_offset; in ceph_readdir()
349 req->r_args.readdir.frag = cpu_to_le32(frag); in ceph_readdir()
351 req->r_inode = inode; in ceph_readdir()
353 req->r_dentry = dget(file->f_path.dentry); in ceph_readdir()
354 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_readdir()
356 ceph_mdsc_put_request(req); in ceph_readdir()
361 (int)req->r_reply_info.dir_end, in ceph_readdir()
362 (int)req->r_reply_info.dir_complete); in ceph_readdir()
366 rinfo = &req->r_reply_info; in ceph_readdir()
369 off = req->r_readdir_offset; in ceph_readdir()
375 fi->last_readdir = req; in ceph_readdir()
377 if (req->r_did_prepopulate) { in ceph_readdir()
378 fi->readdir_cache_idx = req->r_readdir_cache_idx; in ceph_readdir()
385 fi->dir_release_count = req->r_dir_release_cnt; in ceph_readdir()
386 fi->dir_ordered_count = req->r_dir_ordered_cnt; in ceph_readdir()
396 if (req->r_reply_info.dir_end) { in ceph_readdir()
552 int ceph_handle_snapdir(struct ceph_mds_request *req, in ceph_handle_snapdir() argument
584 struct dentry *ceph_finish_lookup(struct ceph_mds_request *req, in ceph_finish_lookup() argument
590 if (!req->r_reply_info.head->is_dentry) { in ceph_finish_lookup()
603 else if (dentry != req->r_dentry) in ceph_finish_lookup()
604 dentry = dget(req->r_dentry); /* we got spliced */ in ceph_finish_lookup()
625 struct ceph_mds_request *req; in ceph_lookup() local
664 req = ceph_mdsc_create_request(mdsc, op, USE_ANY_MDS); in ceph_lookup()
665 if (IS_ERR(req)) in ceph_lookup()
666 return ERR_CAST(req); in ceph_lookup()
667 req->r_dentry = dget(dentry); in ceph_lookup()
668 req->r_num_caps = 2; in ceph_lookup()
670 req->r_args.getattr.mask = cpu_to_le32(CEPH_STAT_CAP_INODE); in ceph_lookup()
671 req->r_locked_dir = dir; in ceph_lookup()
672 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_lookup()
673 err = ceph_handle_snapdir(req, dentry, err); in ceph_lookup()
674 dentry = ceph_finish_lookup(req, dentry, err); in ceph_lookup()
675 ceph_mdsc_put_request(req); /* will dput(dentry) */ in ceph_lookup()
712 struct ceph_mds_request *req; in ceph_mknod() local
725 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_MKNOD, USE_AUTH_MDS); in ceph_mknod()
726 if (IS_ERR(req)) { in ceph_mknod()
727 err = PTR_ERR(req); in ceph_mknod()
730 req->r_dentry = dget(dentry); in ceph_mknod()
731 req->r_num_caps = 2; in ceph_mknod()
732 req->r_locked_dir = dir; in ceph_mknod()
733 req->r_args.mknod.mode = cpu_to_le32(mode); in ceph_mknod()
734 req->r_args.mknod.rdev = cpu_to_le32(rdev); in ceph_mknod()
735 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_mknod()
736 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_mknod()
738 req->r_pagelist = acls.pagelist; in ceph_mknod()
741 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_mknod()
742 if (!err && !req->r_reply_info.head->is_dentry) in ceph_mknod()
744 ceph_mdsc_put_request(req); in ceph_mknod()
765 struct ceph_mds_request *req; in ceph_symlink() local
772 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_SYMLINK, USE_AUTH_MDS); in ceph_symlink()
773 if (IS_ERR(req)) { in ceph_symlink()
774 err = PTR_ERR(req); in ceph_symlink()
777 req->r_path2 = kstrdup(dest, GFP_KERNEL); in ceph_symlink()
778 if (!req->r_path2) { in ceph_symlink()
780 ceph_mdsc_put_request(req); in ceph_symlink()
783 req->r_locked_dir = dir; in ceph_symlink()
784 req->r_dentry = dget(dentry); in ceph_symlink()
785 req->r_num_caps = 2; in ceph_symlink()
786 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_symlink()
787 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_symlink()
788 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_symlink()
789 if (!err && !req->r_reply_info.head->is_dentry) in ceph_symlink()
791 ceph_mdsc_put_request(req); in ceph_symlink()
802 struct ceph_mds_request *req; in ceph_mkdir() local
824 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_mkdir()
825 if (IS_ERR(req)) { in ceph_mkdir()
826 err = PTR_ERR(req); in ceph_mkdir()
830 req->r_dentry = dget(dentry); in ceph_mkdir()
831 req->r_num_caps = 2; in ceph_mkdir()
832 req->r_locked_dir = dir; in ceph_mkdir()
833 req->r_args.mkdir.mode = cpu_to_le32(mode); in ceph_mkdir()
834 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_mkdir()
835 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_mkdir()
837 req->r_pagelist = acls.pagelist; in ceph_mkdir()
840 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_mkdir()
842 !req->r_reply_info.head->is_target && in ceph_mkdir()
843 !req->r_reply_info.head->is_dentry) in ceph_mkdir()
845 ceph_mdsc_put_request(req); in ceph_mkdir()
860 struct ceph_mds_request *req; in ceph_link() local
868 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_LINK, USE_AUTH_MDS); in ceph_link()
869 if (IS_ERR(req)) { in ceph_link()
871 return PTR_ERR(req); in ceph_link()
873 req->r_dentry = dget(dentry); in ceph_link()
874 req->r_num_caps = 2; in ceph_link()
875 req->r_old_dentry = dget(old_dentry); in ceph_link()
876 req->r_locked_dir = dir; in ceph_link()
877 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_link()
878 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_link()
880 req->r_old_inode_drop = CEPH_CAP_LINK_SHARED; in ceph_link()
881 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_link()
884 } else if (!req->r_reply_info.head->is_dentry) { in ceph_link()
888 ceph_mdsc_put_request(req); in ceph_link()
920 struct ceph_mds_request *req; in ceph_unlink() local
935 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_unlink()
936 if (IS_ERR(req)) { in ceph_unlink()
937 err = PTR_ERR(req); in ceph_unlink()
940 req->r_dentry = dget(dentry); in ceph_unlink()
941 req->r_num_caps = 2; in ceph_unlink()
942 req->r_locked_dir = dir; in ceph_unlink()
943 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_unlink()
944 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_unlink()
945 req->r_inode_drop = drop_caps_for_unlink(inode); in ceph_unlink()
946 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_unlink()
947 if (!err && !req->r_reply_info.head->is_dentry) in ceph_unlink()
949 ceph_mdsc_put_request(req); in ceph_unlink()
959 struct ceph_mds_request *req; in ceph_rename() local
973 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_rename()
974 if (IS_ERR(req)) in ceph_rename()
975 return PTR_ERR(req); in ceph_rename()
977 req->r_dentry = dget(new_dentry); in ceph_rename()
978 req->r_num_caps = 2; in ceph_rename()
979 req->r_old_dentry = dget(old_dentry); in ceph_rename()
980 req->r_old_dentry_dir = old_dir; in ceph_rename()
981 req->r_locked_dir = new_dir; in ceph_rename()
982 req->r_old_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_rename()
983 req->r_old_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_rename()
984 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_rename()
985 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_rename()
987 req->r_old_inode_drop = CEPH_CAP_LINK_SHARED; in ceph_rename()
989 req->r_inode_drop = drop_caps_for_unlink(d_inode(new_dentry)); in ceph_rename()
990 err = ceph_mdsc_do_request(mdsc, old_dir, req); in ceph_rename()
991 if (!err && !req->r_reply_info.head->is_dentry) { in ceph_rename()
1008 ceph_mdsc_put_request(req); in ceph_rename()