]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: small adjustments
authorYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 1 Apr 2009 21:22:54 +0000 (14:22 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 1 Apr 2009 21:22:54 +0000 (14:22 -0700)
src/kernel/dir.c
src/kernel/inode.c
src/kernel/mds_client.c

index 3b517148084ba032450fc4612eae6601810ce65d..2046ea4958487447e2d5f9efc072a827061b9133 100644 (file)
@@ -88,7 +88,6 @@ more:
                        return PTR_ERR(req);
                req->r_inode = igrab(inode);
                req->r_dentry = dget(filp->f_dentry);
-               req->r_num_caps = 1000;
                /* hints to request -> mds selection code */
                req->r_direct_mode = USE_AUTH_MDS;
                req->r_direct_hash = frag_value(frag);
@@ -96,6 +95,7 @@ more:
                req->r_path2 = fi->last_name;
                req->r_args.readdir.frag = cpu_to_le32(frag);
                req->r_args.readdir.max_entries = max_entries;
+               req->r_num_caps = max_entries;
                err = ceph_mdsc_do_request(mdsc, NULL, req);
                if (err < 0) {
                        ceph_mdsc_put_request(req);
index 40ee456779aebec0aa5502fc43bbf9a43b58b3f3..a30994705a56972211197c4965792eed4131b51f 100644 (file)
@@ -849,7 +849,7 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req,
 
                err = fill_inode(dir, &rinfo->diri, rinfo->dirfrag,
                                 session, req->r_request_started, -1,
-                                &req->caps_reservation);
+                                &req->r_caps_reservation);
                if (err < 0)
                        return err;
 
@@ -960,7 +960,7 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req,
                                 session, req->r_request_started,
                                 (le32_to_cpu(rinfo->head->result) == 0) ?
                                 req->r_fmode : -1,
-                                &req->caps_reservation);
+                                &req->r_caps_reservation);
                if (err < 0) {
                        derr(30, "fill_inode badness\n");
                        goto done;
@@ -1050,7 +1050,7 @@ retry_lookup:
 
                if (fill_inode(in, &rinfo->dir_in[i], NULL, session,
                               req->r_request_started, -1,
-                              &req->caps_reservation) < 0) {
+                              &req->r_caps_reservation) < 0) {
                        dout(0, "fill_inode badness on %p\n", in);
                        dput(dn);
                        continue;
index bd5ae885458ec80d553c4a61fc1bd5c749f75ee3..9db75e820c8a31268bf1e3cdfebc293b26cf4ce5 100644 (file)
@@ -410,7 +410,8 @@ static void __register_request(struct ceph_mds_client *mdsc,
                               struct inode *listener)
 {
        req->r_tid = ++mdsc->last_tid;
-       ceph_reserve_caps(&req->caps_reservation, req->r_num_caps);
+       if (req->r_num_caps)
+               ceph_reserve_caps(&req->r_caps_reservation, req->r_num_caps);
        dout(30, "__register_request %p tid %lld\n", req, req->r_tid);
        ceph_mdsc_get_request(req);
        radix_tree_insert(&mdsc->request_tree, req->r_tid, (void *)req);
@@ -440,7 +441,7 @@ static void __unregister_request(struct ceph_mds_client *mdsc,
                spin_unlock(&ci->i_unsafe_lock);
        }
 
-       ceph_unreserve_caps(&req->caps_reservation);
+       ceph_unreserve_caps(&req->r_caps_reservation);
 }
 
 static bool __have_session(struct ceph_mds_client *mdsc, int mds)