]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: kill ceph_release_caps and check_caps drop arg
authorSage Weil <sage@newdream.net>
Fri, 10 Apr 2009 20:42:37 +0000 (13:42 -0700)
committerSage Weil <sage@newdream.net>
Fri, 10 Apr 2009 20:42:37 +0000 (13:42 -0700)
src/kernel/caps.c
src/kernel/file.c
src/kernel/inode.c
src/kernel/super.h

index 844daf0dcf275f6cfa9b86de23073afa34e3cbf1..f2666e5e4880b3a882744db1b8f1cf5d301c37f9 100644 (file)
@@ -1010,7 +1010,7 @@ static void ceph_flush_snaps(struct ceph_inode_info *ci)
  * @is_delayed indicates caller is delayed work and we should not
  * delay further.
  */
-void ceph_check_caps(struct ceph_inode_info *ci, int is_delayed, int drop,
+void ceph_check_caps(struct ceph_inode_info *ci, int is_delayed,
                     struct ceph_mds_session *session)
 {
        struct ceph_client *client = ceph_inode_to_client(&ci->vfs_inode);
@@ -1026,7 +1026,6 @@ void ceph_check_caps(struct ceph_inode_info *ci, int is_delayed, int drop,
        struct rb_node *p;
        int tried_invalidate = 0;
        int delayed = 0, sent = 0, force_requeue = 0, num;
-       int op;
 
        /* if we are unmounting, flush any unused caps immediately. */
        if (mdsc->stopping)
@@ -1060,7 +1059,6 @@ retry_locked:
                                retain |= CEPH_CAP_ANY_RD;
                }
        }
-       retain &= ~drop;
 
        dout(10, "check_caps %p file_wanted %s used %s retain %s issued %s\n",
             inode, ceph_cap_string(file_wanted), ceph_cap_string(used),
@@ -1206,19 +1204,12 @@ ack:
                        ci->i_dirty_caps = 0;
                }
 
-               /* don't update mds wanted on drop */
-               if (drop) {
-                       want = cap->mds_wanted; 
-                       op = CEPH_CAP_OP_DROP;
-               } else {
-                       op = CEPH_CAP_OP_UPDATE;
-               }
-
                mds = cap->mds;  /* remember mds, so we don't repeat */
                sent++;
 
                /* __send_cap drops i_lock */
-               __send_cap(mdsc, cap, op, used, want, retain, flushing);
+               __send_cap(mdsc, cap, CEPH_CAP_OP_UPDATE, used, want, retain,
+                          flushing);
                goto retry; /* retake i_lock and restart our cap scan. */
        }
 
@@ -1528,7 +1519,7 @@ void ceph_put_cap_refs(struct ceph_inode_info *ci, int had)
             last ? "last" : "");
 
        if (last && !flushsnaps)
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
        else if (flushsnaps)
                ceph_flush_snaps(ci);
        if (wake)
@@ -1590,7 +1581,7 @@ void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
        spin_unlock(&inode->i_lock);
 
        if (last) {
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
                iput(inode);
        } else if (last_snap) {
                ceph_flush_snaps(ci);
@@ -2136,7 +2127,7 @@ void ceph_handle_caps(struct ceph_mds_client *mdsc,
                        ceph_msg_get(msg);
                        ceph_send_msg_mds(mdsc, msg, mds);
                } else if (r == 2) {
-                       ceph_check_caps(ceph_inode(inode), 1, 0, session);
+                       ceph_check_caps(ceph_inode(inode), 1, session);
                }
                break;
 
@@ -2159,7 +2150,7 @@ done:
 
        kfree(xattr_data);
        if (check_caps)
-               ceph_check_caps(ceph_inode(inode), 1, 0, NULL);
+               ceph_check_caps(ceph_inode(inode), 1, NULL);
        if (inode)
                iput(inode);
        return;
@@ -2190,7 +2181,7 @@ void ceph_check_delayed_caps(struct ceph_mds_client *mdsc)
                list_del_init(&ci->i_cap_delay_list);
                spin_unlock(&mdsc->cap_delay_lock);
                dout(10, "check_delayed_caps on %p\n", &ci->vfs_inode);
-               ceph_check_caps(ci, 1, 0, NULL);
+               ceph_check_caps(ci, 1, NULL);
        }
        spin_unlock(&mdsc->cap_delay_lock);
 }
@@ -2214,7 +2205,7 @@ void ceph_put_fmode(struct ceph_inode_info *ci, int fmode)
        spin_unlock(&inode->i_lock);
 
        if (last && ci->i_vino.snap == CEPH_NOSNAP)
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
 }
 
 /*
index 919d89a8c1b0685793d8e6eb0d369093f6b04b08..b0aec42a5b902f7d5429c3c71f066b1e0590484f 100644 (file)
@@ -153,7 +153,7 @@ int ceph_open(struct inode *inode, struct file *file)
                if ((issued & wanted) != wanted &&
                    (mds_wanted & wanted) != wanted &&
                    ceph_snap(inode) != CEPH_SNAPDIR)
-                       ceph_check_caps(ci, 0, 0, NULL);
+                       ceph_check_caps(ci, 0, NULL);
 
                return ceph_init_file(inode, file, fmode);
        } else if (ceph_snap(inode) != CEPH_NOSNAP &&
@@ -701,7 +701,7 @@ static void check_max_size(struct inode *inode, loff_t endoff)
        }
        spin_unlock(&inode->i_lock);
        if (check)
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
 }
 
 /*
index 50e06508fa9b68e03c07b5857f1dea76406dcc3e..62b7e7e6d7e2403cf9024a236a53c3cac792b506 100644 (file)
@@ -1138,7 +1138,7 @@ void ceph_inode_set_size(struct inode *inode, loff_t size)
        if ((size << 1) >= ci->i_max_size &&
            (ci->i_reported_size << 1) < ci->i_max_size) {
                spin_unlock(&inode->i_lock);
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
        } else {
                spin_unlock(&inode->i_lock);
        }
@@ -1201,7 +1201,7 @@ static void ceph_inode_invalidate_pages(struct work_struct *work)
        spin_unlock(&inode->i_lock);
 
        if (check)
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
 out:
        iput(inode);
 }
@@ -1258,7 +1258,7 @@ void __ceph_do_pending_vmtruncate(struct inode *inode)
        spin_unlock(&inode->i_lock);
 
        if (wrbuffer_refs == 0)
-               ceph_check_caps(ci, 0, 0, NULL);
+               ceph_check_caps(ci, 0, NULL);
        if (wake)
                wake_up(&ci->i_cap_wq);
 }
index 3691cb38b76c8c6b6d0ab5081c57fa2a225ab2b1..fd210b5244af16bacc2ae68bf18f93f01085cb9d 100644 (file)
@@ -782,14 +782,10 @@ extern void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
                                       struct ceph_snap_context *snapc);
 extern void __ceph_flush_snaps(struct ceph_inode_info *ci,
                               struct ceph_mds_session **psession);
-extern void ceph_check_caps(struct ceph_inode_info *ci, int delayed, int drop,
+extern void ceph_check_caps(struct ceph_inode_info *ci, int delayed,
                            struct ceph_mds_session *session);
 extern void ceph_check_delayed_caps(struct ceph_mds_client *mdsc);
 
-static inline void ceph_release_caps(struct inode *inode, int mask)
-{
-       ceph_check_caps(ceph_inode(inode), 1, mask, NULL);
-}
 extern int ceph_encode_inode_release(void **p, struct inode *inode,
                                     int mds, int drop, int unless);
 extern int ceph_encode_dentry_release(void **p, struct dentry *dn,