]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: fix setxattr
authorSage Weil <sage@newdream.net>
Fri, 10 Apr 2009 20:53:38 +0000 (13:53 -0700)
committerSage Weil <sage@newdream.net>
Fri, 10 Apr 2009 20:53:38 +0000 (13:53 -0700)
This was broken ages ago with the mds client interface was switched
up a bit.

src/kernel/inode.c
src/kernel/mds_client.c
src/kernel/mds_client.h

index 62b7e7e6d7e2403cf9024a236a53c3cac792b506..8a2046543de4a8f9c8d5049e66849bf4ea92f20e 100644 (file)
@@ -1798,10 +1798,9 @@ int ceph_setxattr(struct dentry *dentry, const char *name,
        req->r_num_caps = 1;
        req->r_args.setxattr.flags = cpu_to_le32(flags);
 
-       req->r_request->pages = pages;
-       req->r_request->nr_pages = nr_pages;
-       req->r_request->hdr.data_len = cpu_to_le32(size);
-       req->r_request->hdr.data_off = cpu_to_le16(0);
+       req->r_pages = pages;
+       req->r_num_pages = nr_pages;
+       req->r_data_len = size;
 
        err = ceph_mdsc_do_request(mdsc, parent_inode, req);
        ceph_mdsc_put_request(req);
index 64b3b3fc705aa19fbcbd5aaad106195c754117ba..3eccd0b57fc0971bca923e6f1d18a08aaf590117 100644 (file)
@@ -1171,6 +1171,11 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
        msg->front.iov_len = p - msg->front.iov_base;
        msg->hdr.front_len = cpu_to_le32(msg->front.iov_len);
 
+       msg->pages = req->r_pages;
+       msg->nr_pages = req->r_num_pages;
+       msg->hdr.data_len = cpu_to_le32(req->r_data_len);
+       msg->hdr.data_off = cpu_to_le16(0);
+
 out_free2:
        if (freepath2)
                kfree((char *)path2);
index 3da02d88b4d1dc1809a2cff696078cc45d661752..666a17bdd9d19a83bfcdfd01803a0bb2b58b57a8 100644 (file)
@@ -165,7 +165,11 @@ struct ceph_mds_request {
        struct dentry *r_old_dentry; /* rename from or link from */
        const char *r_path1, *r_path2;
        struct ceph_vino r_ino1, r_ino2;
+
        union ceph_mds_request_args r_args;
+       struct page **r_pages;
+       int r_num_pages;
+       int r_data_len;
 
        int r_inode_drop, r_inode_unless;
        int r_dentry_drop, r_dentry_unless;