]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: small cleanup
authorYehuda Sadeh <yehuda@hq.newdream.net>
Thu, 5 Mar 2009 00:09:15 +0000 (16:09 -0800)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Thu, 5 Mar 2009 00:09:15 +0000 (16:09 -0800)
src/kernel/caps.c
src/kernel/dir.c
src/kernel/file.c
src/kernel/inode.c
src/kernel/super.h

index fe7573e48cfea0b7de2d6a1aa8c186b7bf5cd58a..e11717c8f18457d13ff44a4ebaa15f433c387597 100644 (file)
@@ -230,7 +230,7 @@ retry:
 
        /* move to tail of session rdcaps lru? */
        if (!list_empty(&cap->session_rdcaps))
-               list_del(&cap->session_rdcaps);
+               list_del_init(&cap->session_rdcaps);
        if ((cap->issued & ~CEPH_CAP_EXPIREABLE) == 0)
                list_add_tail(&cap->session_rdcaps, &session->s_rdcaps);
 
@@ -980,7 +980,7 @@ static void __take_cap_refs(struct ceph_inode_info *ci, int got)
  * Note that caller is responsible for ensuring max_size increases are
  * requested from the MDS.
  */
-int ceph_get_cap_refs(struct ceph_inode_info *ci, int need, int want, int *got,
+static int ceph_get_cap_refs(struct ceph_inode_info *ci, int need, int want, int *got,
                      loff_t endoff)
 {
        struct inode *inode = &ci->vfs_inode;
@@ -1821,7 +1821,7 @@ void ceph_trim_session_rdcaps(struct ceph_mds_session *session)
        }
 }
 
-int ceph_wait_for_caps(struct ceph_inode_info *ci, int need, int want, int *got,
+int ceph_get_caps(struct ceph_inode_info *ci, int need, int want, int *got,
                      loff_t endoff)
 {
        return wait_event_interruptible(ci->i_cap_wq,
index 4c8a52304c2ba8de027aaff99509c727a9bdb0cb..16730ed9b49cabc7e31c144a4009d3fb0ecd74bf 100644 (file)
@@ -368,7 +368,7 @@ static int ceph_mknod(struct inode *dir, struct dentry *dentry,
        req->r_locked_dir = dir;
        req->r_args.mknod.mode = cpu_to_le32(mode);
        req->r_args.mknod.rdev = cpu_to_le32(rdev);
-       if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
        err = ceph_mdsc_do_request(mdsc, dir, req);
        if (!err && req->r_reply_info.trace_numd == 0) {
@@ -435,7 +435,7 @@ static int ceph_symlink(struct inode *dir, struct dentry *dentry,
                return PTR_ERR(req);
        }
        req->r_locked_dir = dir;
-       if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
        err = ceph_mdsc_do_request(mdsc, dir, req);
        ceph_mdsc_put_request(req);
@@ -481,7 +481,7 @@ static int ceph_mkdir(struct inode *dir, struct dentry *dentry, int mode)
        req->r_locked_dir = dir;
        req->r_args.mkdir.mode = cpu_to_le32(mode);
 
-       if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
        err = ceph_mdsc_do_request(mdsc, dir, req);
        ceph_mdsc_put_request(req);
@@ -512,7 +512,7 @@ static int ceph_link(struct dentry *old_dentry, struct inode *dir,
 
        req->r_locked_dir = old_dentry->d_inode;
 
-       if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
        err = ceph_mdsc_do_request(mdsc, dir, req);
        if (err) {
@@ -569,7 +569,7 @@ static int ceph_unlink(struct inode *dir, struct dentry *dentry)
 
        req->r_locked_dir = dir;  /* by VFS */
 
-       if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
        ceph_mdsc_lease_release(mdsc, dir, dentry, CEPH_LOCK_DN);
        ceph_release_caps(inode, CEPH_CAP_LINK_RDCACHE);
@@ -600,10 +600,10 @@ static int ceph_rename(struct inode *old_dir, struct dentry *old_dentry,
        if (IS_ERR(req))
                return PTR_ERR(req);
        req->r_locked_dir = new_dir;
-       if ((ceph_caps_issued(ceph_inode(old_dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(old_dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(old_dir, CEPH_CAP_FILE_RDCACHE);
        ceph_mdsc_lease_release(mdsc, old_dir, old_dentry, CEPH_LOCK_DN);
-       if ((ceph_caps_issued(ceph_inode(new_dir)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(new_dir), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(new_dir, CEPH_CAP_FILE_RDCACHE);
        ceph_mdsc_lease_release(mdsc, new_dir, new_dentry, CEPH_LOCK_DN);
        err = ceph_mdsc_do_request(mdsc, old_dir, req);
index 50b60c7844a121c8b07f778200129731e531b36a..ad008255329b776b340d204ff7bd33f211fce587 100644 (file)
@@ -121,7 +121,7 @@ int ceph_open(struct inode *inode, struct file *file)
        dentry = d_find_alias(inode);
        if (!dentry)
                return -ESTALE;  /* yuck */
-       if ((ceph_caps_issued(ceph_inode(inode)) & CEPH_CAP_FILE_EXCL) == 0)
+       if (!ceph_caps_issued_mask(ceph_inode(inode), CEPH_CAP_FILE_EXCL))
                ceph_release_caps(inode, CEPH_CAP_FILE_RDCACHE);
        req = prepare_open_request(inode->i_sb, dentry, flags, 0);
        if (IS_ERR(req)) {
@@ -171,7 +171,7 @@ struct dentry *ceph_lookup_open(struct inode *dir, struct dentry *dentry,
        if (IS_ERR(req))
                return ERR_PTR(PTR_ERR(req));
        if ((flags & O_CREAT) &&
-           (ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
+           (!ceph_caps_issued_mask(ceph_inode(dir), CEPH_CAP_FILE_EXCL)))
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
        req->r_locked_dir = dir;           /* caller holds dir->i_mutex */
        err = ceph_mdsc_do_request(mdsc, parent_inode, req);
@@ -277,7 +277,7 @@ static ssize_t ceph_aio_read(struct kiocb *iocb, const struct iovec *iov,
 
        dout(10, "aio_read %llx.%llx %llu~%u trying to get caps on %p\n",
             ceph_vinop(inode), pos, (unsigned)len, inode);
-       ret = ceph_wait_for_caps(ci,
+       ret = ceph_get_caps(ci,
                                 CEPH_CAP_FILE_RD,
                                 CEPH_CAP_FILE_RDCACHE,
                                 &got, -1);
@@ -357,7 +357,7 @@ retry_snap:
        check_max_size(inode, endoff);
        dout(10, "aio_write %p %llu~%u getting caps. i_size %llu\n",
             inode, pos, (unsigned)iov->iov_len, inode->i_size);
-       ret = ceph_wait_for_caps(ci,
+       ret = ceph_get_caps(ci,
                                 CEPH_CAP_FILE_WR,
                                 CEPH_CAP_FILE_WRBUFFER,
                                 &got, endoff);
index 3e5c08e2ea1bb2aa212303a1188169cd4449a0c9..80059491cb02e98fd5bef6e2b64832b025dd3e65 100644 (file)
@@ -1556,7 +1556,7 @@ static int ceph_setattr_time(struct dentry *dentry, struct iattr *attr)
        int err;
 
        /* if i hold CAP_EXCL, i can change [am]time any way i like */
-       if (ceph_caps_issued(ci) & CEPH_CAP_FILE_EXCL) {
+       if (ceph_caps_issued_mask(ci, CEPH_CAP_FILE_EXCL)) {
                dout(10, "utime holding EXCL, doing locally\n");
                ci->i_time_warp_seq++;
                if (ia_valid & ATTR_ATIME)
@@ -1569,7 +1569,7 @@ static int ceph_setattr_time(struct dentry *dentry, struct iattr *attr)
        }
 
        /* if i hold CAP_WR, i can _increase_ [am]time safely */
-       if ((ceph_caps_issued(ci) & CEPH_CAP_FILE_WR) &&
+       if (ceph_caps_issued_mask(ci, CEPH_CAP_FILE_WR) &&
            ((ia_valid & ATTR_MTIME) == 0 ||
             timespec_compare(&inode->i_mtime, &attr->ia_mtime) < 0) &&
            ((ia_valid & ATTR_ATIME) == 0 ||
index 2dfe50cd53ec85a354edf0ca428cce1fbb99f5a7..d7f0b14d3d597cec44160292133a02561ab5a8c3 100644 (file)
@@ -443,6 +443,11 @@ static inline int ceph_caps_issued(struct ceph_inode_info *ci)
        return issued;
 }
 
+static inline int ceph_caps_issued_mask(struct ceph_inode_info *ci, int mask)
+{
+       return (ceph_caps_issued(ci) & mask);
+}
+
 extern int __ceph_caps_dirty(struct ceph_inode_info *ci);
 extern int ceph_caps_revoking(struct ceph_inode_info *ci);
 
@@ -722,8 +727,6 @@ extern int ceph_add_cap(struct inode *inode,
                        struct ceph_cap *new_cap);
 extern void ceph_remove_cap(struct ceph_cap *cap);
 extern int ceph_get_cap_mds(struct inode *inode);
-extern int ceph_get_cap_refs(struct ceph_inode_info *ci, int need, int want,
-                            int *got, loff_t offset);
 extern void ceph_put_cap_refs(struct ceph_inode_info *ci, int had);
 extern void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
                                       struct ceph_snap_context *snapc);
@@ -739,7 +742,7 @@ static inline void ceph_release_caps(struct inode *inode, int mask)
        ceph_check_caps(ceph_inode(inode), 1, mask, NULL);
 }
 
-extern int ceph_wait_for_caps(struct ceph_inode_info *ci, int need, int want, int *got,
+extern int ceph_get_caps(struct ceph_inode_info *ci, int need, int want, int *got,
                      loff_t endoff);
 
 /* addr.c */