Lines Matching refs:req

320 		struct ceph_mds_request *req;  in ceph_readdir()  local
332 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_readdir()
333 if (IS_ERR(req)) in ceph_readdir()
334 return PTR_ERR(req); in ceph_readdir()
335 err = ceph_alloc_readdir_reply_buffer(req, inode); in ceph_readdir()
337 ceph_mdsc_put_request(req); in ceph_readdir()
341 req->r_direct_mode = USE_AUTH_MDS; in ceph_readdir()
342 req->r_direct_hash = ceph_frag_value(frag); in ceph_readdir()
343 req->r_direct_is_hash = true; in ceph_readdir()
345 req->r_path2 = kstrdup(fi->last_name, GFP_NOFS); in ceph_readdir()
346 if (!req->r_path2) { in ceph_readdir()
347 ceph_mdsc_put_request(req); in ceph_readdir()
351 req->r_readdir_offset = fi->next_offset; in ceph_readdir()
352 req->r_args.readdir.frag = cpu_to_le32(frag); in ceph_readdir()
354 req->r_inode = inode; in ceph_readdir()
356 req->r_dentry = dget(file->f_path.dentry); in ceph_readdir()
357 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_readdir()
359 ceph_mdsc_put_request(req); in ceph_readdir()
364 (int)req->r_reply_info.dir_end, in ceph_readdir()
365 (int)req->r_reply_info.dir_complete); in ceph_readdir()
367 if (!req->r_did_prepopulate) { in ceph_readdir()
374 rinfo = &req->r_reply_info; in ceph_readdir()
385 fi->last_readdir = req; in ceph_readdir()
387 if (req->r_reply_info.dir_end) { in ceph_readdir()
542 int ceph_handle_snapdir(struct ceph_mds_request *req, in ceph_handle_snapdir() argument
574 struct dentry *ceph_finish_lookup(struct ceph_mds_request *req, in ceph_finish_lookup() argument
580 if (!req->r_reply_info.head->is_dentry) { in ceph_finish_lookup()
593 else if (dentry != req->r_dentry) in ceph_finish_lookup()
594 dentry = dget(req->r_dentry); /* we got spliced */ in ceph_finish_lookup()
615 struct ceph_mds_request *req; in ceph_lookup() local
654 req = ceph_mdsc_create_request(mdsc, op, USE_ANY_MDS); in ceph_lookup()
655 if (IS_ERR(req)) in ceph_lookup()
656 return ERR_CAST(req); in ceph_lookup()
657 req->r_dentry = dget(dentry); in ceph_lookup()
658 req->r_num_caps = 2; in ceph_lookup()
660 req->r_args.getattr.mask = cpu_to_le32(CEPH_STAT_CAP_INODE); in ceph_lookup()
661 req->r_locked_dir = dir; in ceph_lookup()
662 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_lookup()
663 err = ceph_handle_snapdir(req, dentry, err); in ceph_lookup()
664 dentry = ceph_finish_lookup(req, dentry, err); in ceph_lookup()
665 ceph_mdsc_put_request(req); /* will dput(dentry) */ in ceph_lookup()
702 struct ceph_mds_request *req; in ceph_mknod() local
715 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_MKNOD, USE_AUTH_MDS); in ceph_mknod()
716 if (IS_ERR(req)) { in ceph_mknod()
717 err = PTR_ERR(req); in ceph_mknod()
720 req->r_dentry = dget(dentry); in ceph_mknod()
721 req->r_num_caps = 2; in ceph_mknod()
722 req->r_locked_dir = dir; in ceph_mknod()
723 req->r_args.mknod.mode = cpu_to_le32(mode); in ceph_mknod()
724 req->r_args.mknod.rdev = cpu_to_le32(rdev); in ceph_mknod()
725 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_mknod()
726 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_mknod()
728 req->r_pagelist = acls.pagelist; in ceph_mknod()
731 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_mknod()
732 if (!err && !req->r_reply_info.head->is_dentry) in ceph_mknod()
734 ceph_mdsc_put_request(req); in ceph_mknod()
755 struct ceph_mds_request *req; in ceph_symlink() local
762 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_SYMLINK, USE_AUTH_MDS); in ceph_symlink()
763 if (IS_ERR(req)) { in ceph_symlink()
764 err = PTR_ERR(req); in ceph_symlink()
767 req->r_path2 = kstrdup(dest, GFP_NOFS); in ceph_symlink()
768 if (!req->r_path2) { in ceph_symlink()
770 ceph_mdsc_put_request(req); in ceph_symlink()
773 req->r_locked_dir = dir; in ceph_symlink()
774 req->r_dentry = dget(dentry); in ceph_symlink()
775 req->r_num_caps = 2; in ceph_symlink()
776 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_symlink()
777 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_symlink()
778 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_symlink()
779 if (!err && !req->r_reply_info.head->is_dentry) in ceph_symlink()
781 ceph_mdsc_put_request(req); in ceph_symlink()
792 struct ceph_mds_request *req; in ceph_mkdir() local
814 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_mkdir()
815 if (IS_ERR(req)) { in ceph_mkdir()
816 err = PTR_ERR(req); in ceph_mkdir()
820 req->r_dentry = dget(dentry); in ceph_mkdir()
821 req->r_num_caps = 2; in ceph_mkdir()
822 req->r_locked_dir = dir; in ceph_mkdir()
823 req->r_args.mkdir.mode = cpu_to_le32(mode); in ceph_mkdir()
824 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_mkdir()
825 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_mkdir()
827 req->r_pagelist = acls.pagelist; in ceph_mkdir()
830 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_mkdir()
832 !req->r_reply_info.head->is_target && in ceph_mkdir()
833 !req->r_reply_info.head->is_dentry) in ceph_mkdir()
835 ceph_mdsc_put_request(req); in ceph_mkdir()
850 struct ceph_mds_request *req; in ceph_link() local
858 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_LINK, USE_AUTH_MDS); in ceph_link()
859 if (IS_ERR(req)) { in ceph_link()
861 return PTR_ERR(req); in ceph_link()
863 req->r_dentry = dget(dentry); in ceph_link()
864 req->r_num_caps = 2; in ceph_link()
865 req->r_old_dentry = dget(old_dentry); in ceph_link()
866 req->r_locked_dir = dir; in ceph_link()
867 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_link()
868 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_link()
870 req->r_old_inode_drop = CEPH_CAP_LINK_SHARED; in ceph_link()
871 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_link()
874 } else if (!req->r_reply_info.head->is_dentry) { in ceph_link()
878 ceph_mdsc_put_request(req); in ceph_link()
910 struct ceph_mds_request *req; in ceph_unlink() local
925 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_unlink()
926 if (IS_ERR(req)) { in ceph_unlink()
927 err = PTR_ERR(req); in ceph_unlink()
930 req->r_dentry = dget(dentry); in ceph_unlink()
931 req->r_num_caps = 2; in ceph_unlink()
932 req->r_locked_dir = dir; in ceph_unlink()
933 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_unlink()
934 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_unlink()
935 req->r_inode_drop = drop_caps_for_unlink(inode); in ceph_unlink()
936 err = ceph_mdsc_do_request(mdsc, dir, req); in ceph_unlink()
937 if (!err && !req->r_reply_info.head->is_dentry) in ceph_unlink()
939 ceph_mdsc_put_request(req); in ceph_unlink()
949 struct ceph_mds_request *req; in ceph_rename() local
963 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_rename()
964 if (IS_ERR(req)) in ceph_rename()
965 return PTR_ERR(req); in ceph_rename()
967 req->r_dentry = dget(new_dentry); in ceph_rename()
968 req->r_num_caps = 2; in ceph_rename()
969 req->r_old_dentry = dget(old_dentry); in ceph_rename()
970 req->r_old_dentry_dir = old_dir; in ceph_rename()
971 req->r_locked_dir = new_dir; in ceph_rename()
972 req->r_old_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_rename()
973 req->r_old_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_rename()
974 req->r_dentry_drop = CEPH_CAP_FILE_SHARED; in ceph_rename()
975 req->r_dentry_unless = CEPH_CAP_FILE_EXCL; in ceph_rename()
977 req->r_old_inode_drop = CEPH_CAP_LINK_SHARED; in ceph_rename()
979 req->r_inode_drop = drop_caps_for_unlink(d_inode(new_dentry)); in ceph_rename()
980 err = ceph_mdsc_do_request(mdsc, old_dir, req); in ceph_rename()
981 if (!err && !req->r_reply_info.head->is_dentry) { in ceph_rename()
999 ceph_mdsc_put_request(req); in ceph_rename()
1236 struct ceph_mds_request *req; in ceph_dir_fsync() local
1250 req = list_entry(head->prev, in ceph_dir_fsync()
1252 last_tid = req->r_tid; in ceph_dir_fsync()
1255 ceph_mdsc_get_request(req); in ceph_dir_fsync()
1259 inode, req->r_tid, last_tid); in ceph_dir_fsync()
1260 if (req->r_timeout) { in ceph_dir_fsync()
1262 &req->r_safe_completion, in ceph_dir_fsync()
1263 req->r_timeout); in ceph_dir_fsync()
1269 wait_for_completion(&req->r_safe_completion); in ceph_dir_fsync()
1271 ceph_mdsc_put_request(req); in ceph_dir_fsync()
1276 req = list_entry(head->next, in ceph_dir_fsync()
1278 } while (req->r_tid < last_tid); in ceph_dir_fsync()