]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: some sparse fixes
authorYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 22 Apr 2009 19:10:24 +0000 (12:10 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 22 Apr 2009 19:10:24 +0000 (12:10 -0700)
src/include/ceph_fs.h
src/kernel/caps.c
src/kernel/dir.c
src/kernel/export.c
src/kernel/inode.c
src/kernel/mds_client.c
src/kernel/messenger.c

index 98f95de06375b3a3867f8a78caf37e5cf24b5f0c..e8beda20623282ca0fd0dd5902b907647bdfe18d 100644 (file)
@@ -797,7 +797,7 @@ struct ceph_mds_request_head {
        ceph_epoch_t mdsmap_epoch; /* on client */
        __le32 flags;
        __u8 num_retry, num_fwd;
-       __u16 num_releases;
+       __le16 num_releases;
        __le32 op;
        __le32 caller_uid, caller_gid;
        __le64 ino;    /* use this ino for openc, mkdir, mknod, etc. */
index 1efb6265e84f95c91a951248f3835976b4573478..05bd0ee439fd82628aa8a437782b773d11230535 100644 (file)
@@ -760,12 +760,12 @@ static void send_cap_msg(struct ceph_mds_client *mdsc, u64 ino, u64 cid, int op,
        fc->gid = cpu_to_le32(gid);
        fc->mode = cpu_to_le32(mode);
 
-       fc->xattr_version = xattr_version;
+       fc->xattr_version = cpu_to_le64(xattr_version);
        if (xattrs_blob) {
                char *dst = (char *)fc;
                dst += sizeof(*fc);
 
-               fc->xattr_len = xattrs_blob_size;
+               fc->xattr_len = cpu_to_le32(xattrs_blob_size);
                memcpy(dst,  xattrs_blob, xattrs_blob_size);
        }
 
@@ -914,7 +914,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap,
 
        if (dropping & CEPH_CAP_XATTR_EXCL) {
                __ceph_build_xattrs_blob(ci, &xattrs_blob, &xattrs_blob_size);
-               ci->i_xattrs.prealloc_blob = 0;
+               ci->i_xattrs.prealloc_blob = NULL;
                ci->i_xattrs.prealloc_size = 0;
                xattr_version = ci->i_xattrs.version + 1;
        }
index 95ae0acf9c1a777bb4e9670d9f0a85ef53efe515..6a4579a98bc82e62a9be94292e2b4704e60c85ba 100644 (file)
@@ -60,6 +60,7 @@ static int __dcache_readdir(struct file *filp,
             last);
 
        spin_lock(&dcache_lock);
+
        if (filp->f_pos == 2 || (last &&
                                 filp->f_pos < ceph_dentry(last)->offset)) {
                if (list_empty(&parent->d_subdirs))
@@ -105,17 +106,21 @@ more:
        dout(10, " %llu (%llu) dentry %p %.*s %p\n", di->offset, filp->f_pos,
             dentry, dentry->d_name.len, dentry->d_name.name, dentry->d_inode);
        filp->f_pos = di->offset;
-       if (filldir(dirent, dentry->d_name.name,
+       err = filldir(dirent, dentry->d_name.name,
                    dentry->d_name.len, di->offset,
                    dentry->d_inode->i_ino,
-                   dentry->d_inode->i_mode >> 12) < 0) {
+                   dentry->d_inode->i_mode >> 12);
+
+       spin_lock(&inode->i_lock);
+       spin_lock(&dcache_lock);
+
+       if (err < 0) {
                fi->dentry = dentry;
                goto out_unlock;
        }
 
        last = dentry;
-       spin_lock(&inode->i_lock);
-       spin_lock(&dcache_lock);
+
        p = p->prev;
        filp->f_pos++;
 
@@ -126,12 +131,13 @@ more:
        err = -EAGAIN;
 
 out_unlock:
-       spin_unlock(&dcache_lock);
        if (last) {
                spin_unlock(&inode->i_lock);
                dput(last);
                spin_lock(&inode->i_lock);
        }
+
+       spin_unlock(&dcache_lock);
        return err;
 }
 
@@ -183,14 +189,15 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir)
            (ci->i_ceph_flags & CEPH_I_COMPLETE) &&
            (__ceph_caps_issued(ci, NULL) & CEPH_CAP_FILE_RDCACHE)) {
                err = __dcache_readdir(filp, dirent, filldir);
-               spin_unlock(&inode->i_lock);
-               if (err != -EAGAIN)
+               if (err != -EAGAIN) {
+                       spin_unlock(&inode->i_lock);
                        return err;
+               }
        }
        spin_unlock(&inode->i_lock);
        if (fi->dentry) {
                dput(fi->dentry);
-               fi->dentry = 0;
+               fi->dentry = NULL;
        }
 
 more:
@@ -220,7 +227,7 @@ more:
                req->r_direct_is_hash = true;
                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_args.readdir.max_entries = cpu_to_le32(max_entries);
                req->r_num_caps = max_entries;
                err = ceph_mdsc_do_request(mdsc, NULL, req);
                if (err < 0) {
@@ -237,7 +244,7 @@ more:
 
                fi->off = fi->next_off;
                kfree(fi->last_name);
-               fi->last_name = 0;
+               fi->last_name = NULL;
 
                if (req->r_reply_info.dir_end) {
                        fi->next_off = 0;
index 6e73db86f17fd5e15930d7914609fdfef999ea20..98d5d008d1fdc94ed0b7cb159d14087e39a25267 100644 (file)
@@ -53,7 +53,7 @@ static int ceph_encode_fh(struct dentry *dentry, u32 *rawfh, int *max_len,
                d_parent = dentry->d_parent;
                fh[len].ino = ceph_vino(dentry->d_inode);
                fh[len].parent_ino = ceph_vino(d_parent->d_inode);
-               fh[len].parent_name_hash = cpu_to_le32(dentry->d_parent->d_name.hash);
+               fh[len].parent_name_hash = dentry->d_parent->d_name.hash;
 
                if (IS_ROOT(dentry))
                        break;
index 0eb04c5c009d735529615bc9a2e6845f662d7d40..8fa6a1b4215937fc37e1a879bc5245b3ccfd5113 100644 (file)
@@ -264,7 +264,7 @@ struct inode *ceph_alloc_inode(struct super_block *sb)
        ci->i_xattrs.count = 0;
        ci->i_xattrs.names_size = 0;
        ci->i_xattrs.vals_size = 0;
-       ci->i_xattrs.prealloc_blob = 0;
+       ci->i_xattrs.prealloc_blob = NULL;
        ci->i_xattrs.prealloc_size = 0;
        ci->i_xattrs.dirty = 0;
 
@@ -1464,7 +1464,7 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
        if (mask) {
                req->r_inode = igrab(inode);
                req->r_inode_drop = release;
-               req->r_args.setattr.mask = mask;
+               req->r_args.setattr.mask = cpu_to_le32(mask);
                req->r_num_caps = 1;
                err = ceph_mdsc_do_request(mdsc, parent_inode, req);
        }
@@ -1924,7 +1924,7 @@ bad:
        return err;
 }
 
-int __get_required_blob_size(struct ceph_inode_info *ci, int name_size, int val_size)
+static int __get_required_blob_size(struct ceph_inode_info *ci, int name_size, int val_size)
 {
        /*
         * 4 bytes for the length, and additional 4 bytes per each xattr name,
index a96f6bf7ceee64cf30c2ea54f4aeb7679e9c3fb0..c180d3d18cd60ba7ce2abf4a02d25317b21f0aae 100644 (file)
@@ -868,7 +868,7 @@ out_unlocked:
 /*
  * called under s_mutex
  */
-void send_cap_releases(struct ceph_mds_client *mdsc,
+static void send_cap_releases(struct ceph_mds_client *mdsc,
                       struct ceph_mds_session *session)
 {
        struct ceph_msg *msg;
@@ -1099,7 +1099,7 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
        int pathlen1, pathlen2;
        int len;
        int freepath1, freepath2;
-       u32 releases;
+       u16 releases;
        void *p, *end;
        int ret;
 
@@ -1169,7 +1169,7 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
                releases += ceph_encode_inode_release(&p,
                      req->r_old_dentry->d_inode,
                      mds, req->r_old_inode_drop, req->r_old_inode_unless);
-       head->num_releases = cpu_to_le32(releases);
+       head->num_releases = cpu_to_le16(releases);
 
        BUG_ON(p > end);
        msg->front.iov_len = p - msg->front.iov_base;
@@ -1238,8 +1238,8 @@ static int __prepare_send_request(struct ceph_mds_client *mdsc,
        if (req->r_locked_dir)
                flags |= CEPH_MDS_FLAG_WANT_DENTRY;
        rhead->flags = cpu_to_le32(flags);
-       rhead->num_fwd = cpu_to_le32(req->r_num_fwd);
-       rhead->num_retry = cpu_to_le32(req->r_attempts - 1);
+       rhead->num_fwd = req->r_num_fwd;
+       rhead->num_retry = req->r_attempts - 1;
 
        dout(20, " r_locked_dir = %p\n", req->r_locked_dir);
 
index b5e414458d4c781388b86827ffc4115bf27ce45d..88501faf9fad91c1157ef8a05cc7fdedf5479785 100644 (file)
@@ -2303,7 +2303,7 @@ struct ceph_msg *ceph_msg_new(int type, int front_len,
        m->hdr.front_len = cpu_to_le32(front_len);
        m->hdr.data_len = cpu_to_le32(page_len);
        m->hdr.data_off = cpu_to_le16(page_off);
-       m->hdr.priority = CEPH_MSG_PRIO_DEFAULT;
+       m->hdr.priority = cpu_to_le16(CEPH_MSG_PRIO_DEFAULT);
        m->hdr.mon_protocol = CEPH_MON_PROTOCOL;
        m->hdr.monc_protocol = CEPH_MONC_PROTOCOL;
        m->hdr.osd_protocol = CEPH_OSD_PROTOCOL;