]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: more cleanup
authorSage Weil <sage@newdream.net>
Fri, 13 Mar 2009 23:54:39 +0000 (16:54 -0700)
committerSage Weil <sage@newdream.net>
Fri, 13 Mar 2009 23:56:32 +0000 (16:56 -0700)
src/kernel/dir.c
src/kernel/mds_client.c
src/kernel/mds_client.h

index 8df2a8e403c6de496fb9af634c8891379aa86007..150e1aac100c6bb9eb7bcdb946d6b081f3d1e53a 100644 (file)
@@ -639,11 +639,10 @@ static int dentry_lease_is_valid(struct dentry *dentry)
        struct ceph_dentry_info *di;
        struct ceph_mds_session *s;
        int valid = 0;
-       int should_renew = 0;
        u32 gen;
        unsigned long ttl;
        struct inode *dir;
-       int mds;
+       int mds = -1;
        u32 seq;
 
        spin_lock(&dentry->d_lock);
@@ -661,26 +660,21 @@ static int dentry_lease_is_valid(struct dentry *dentry)
                        valid = 1;
                        if (di->lease_renew_after &&
                            time_after(jiffies, di->lease_renew_after)) {
-                               should_renew = 1;
+                               /* we should renew */
                                dir = dentry->d_parent->d_inode;
                                mds = s->s_mds;
                                seq = di->lease_seq;
                                di->lease_renew_after = 0;
                        }
                } else {
-                       ceph_put_mds_session(di->lease_session);
-                       kfree(di);
-                       dentry->d_fsdata = NULL;
+                       __ceph_mdsc_drop_dentry_lease(dentry);
                }
        }
        spin_unlock(&dentry->d_lock);
 
-       if (should_renew) {
-               dout(0, "dentry_lease should_renew! - dentry %p = %d\n",
-                    dentry, valid);
+       if (mds >= 0)
                ceph_mdsc_lease_send_msg(&ceph_client(dentry->d_sb)->mdsc,
                         mds, dir, dentry, CEPH_MDS_LEASE_RENEW, seq);
-       }
        dout(20, "dentry_lease_is_valid - dentry %p = %d\n", dentry, valid);
        return valid;
 }
index acd67594bc2debcc32f18b1417caa7a213870830..1eb0210b2f13f95734aaa153220a41e6986d1c6e 100644 (file)
@@ -657,18 +657,6 @@ static void remove_session_caps(struct ceph_mds_session *session)
        BUG_ON(session->s_nr_caps > 0);
 }
 
-/*
- * caller must hold session s_mutex, dentry->d_lock
- */
-static void __drop_dentry_lease(struct dentry *dentry)
-{
-       struct ceph_dentry_info *di;
-       di = ceph_dentry(dentry);
-       ceph_put_mds_session(di->lease_session);
-       kfree(di);
-       dentry->d_fsdata = NULL;
-}
-
 /*
  * wake up any threads waiting on this session's caps
  *
@@ -1889,6 +1877,18 @@ static void check_new_map(struct ceph_mds_client *mdsc,
  * leases
  */
 
+/*
+ * caller must hold session s_mutex, dentry->d_lock
+ */
+void __ceph_mdsc_drop_dentry_lease(struct dentry *dentry)
+{
+       struct ceph_dentry_info *di = ceph_dentry(dentry);
+
+       ceph_put_mds_session(di->lease_session);
+       kfree(di);
+       dentry->d_fsdata = NULL;
+}
+
 void ceph_mdsc_handle_lease(struct ceph_mds_client *mdsc, struct ceph_msg *msg)
 {
        struct super_block *sb = mdsc->client->sb;
@@ -1961,7 +1961,7 @@ void ceph_mdsc_handle_lease(struct ceph_mds_client *mdsc, struct ceph_msg *msg)
        case CEPH_MDS_LEASE_REVOKE:
                if (di && di->lease_session == session) {
                        h->seq = cpu_to_le32(di->lease_seq);
-                       __drop_dentry_lease(dentry);
+                       __ceph_mdsc_drop_dentry_lease(dentry);
                }
                release = 1;
                break;
@@ -2065,7 +2065,7 @@ void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode,
        /* we do have a lease on this dentry; note mds and seq */
        mds = di->lease_session->s_mds;
        seq = di->lease_seq;
-       __drop_dentry_lease(dentry);
+       __ceph_mdsc_drop_dentry_lease(dentry);
        spin_unlock(&dentry->d_lock);
 
        dout(10, "lease_release inode %p dentry %p mask %d to mds%d\n",
index 44f34fd39db57c6c668dc356ada2919e37bd4e79..9d25a9d004dec254d6d8329b6227d26fb413b4ea 100644 (file)
@@ -312,6 +312,7 @@ extern struct ceph_mds_request *ceph_mdsc_get_listener_req(struct inode *inode,
 extern char *ceph_mdsc_build_path(struct dentry *dentry, int *plen, u64 *base,
                                  int mds);
 
+extern void __ceph_mdsc_drop_dentry_lease(struct dentry *dentry);
 extern void ceph_mdsc_lease_send_msg(struct ceph_mds_client *mdsc, int mds,
                                     struct inode *inode,
                                     struct dentry *dentry, char action,