diff options
author | Sage Weil <sage@newdream.net> | 2010-03-02 00:26:41 +0100 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-03-02 00:26:41 +0100 |
commit | 6f863e712d4114e8ae2f02de64ebeac0546ebaa0 (patch) | |
tree | 0a61ce00922aa3670f53f44f7ae5ec2ad19c6c90 /fs | |
parent | ceph: reset front len on return to msgpool; BUG on mismatched front iov (diff) | |
download | linux-6f863e712d4114e8ae2f02de64ebeac0546ebaa0.tar.xz linux-6f863e712d4114e8ae2f02de64ebeac0546ebaa0.zip |
ceph: set osd request message front length correctly
We didn't set the front length correctly. When messages used
the message pool we ended up with the conservative max (4 KB), and
the rest of the time the slightly less conservative estimate. Even
though the OSD ignores the extra data, set it to the right value to avoid
sending extra data over the network.
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ceph/osd_client.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ceph/osd_client.c b/fs/ceph/osd_client.c index ffe1f4064ccd..c4763bff97b4 100644 --- a/fs/ceph/osd_client.c +++ b/fs/ceph/osd_client.c @@ -228,6 +228,9 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc, } BUG_ON(p > msg->front.iov_base + msg->front.iov_len); + msg_size = p - msg->front.iov_base; + msg->front.iov_len = msg_size; + msg->hdr.front_len = cpu_to_le32(msg_size); return req; } |