Skip to content

Commit

Permalink
ceph: fix snaptrace decoding on cap migration between mds
Browse files Browse the repository at this point in the history
This was simply broken.  Apparently at some point we thought about putting
the snaptrace in the middle section, but didn't.

Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Sage Weil committed Mar 1, 2010
1 parent c16e786 commit 70edb55
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions fs/ceph/caps.c
Original file line number Diff line number Diff line change
Expand Up @@ -2608,6 +2608,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
u64 size, max_size;
u64 tid;
int check_caps = 0;
void *snaptrace;
int r;

dout("handle_caps from mds%d\n", mds);
Expand All @@ -2617,6 +2618,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
if (msg->front.iov_len < sizeof(*h))
goto bad;
h = msg->front.iov_base;
snaptrace = h + 1;
op = le32_to_cpu(h->op);
vino.ino = le64_to_cpu(h->ino);
vino.snap = CEPH_NOSNAP;
Expand Down Expand Up @@ -2651,8 +2653,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,

case CEPH_CAP_OP_IMPORT:
handle_cap_import(mdsc, inode, h, session,
msg->middle,
le32_to_cpu(h->snap_trace_len));
snaptrace, le32_to_cpu(h->snap_trace_len));
check_caps = 1; /* we may have sent a RELEASE to the old auth */
goto done;
}
Expand Down

0 comments on commit 70edb55

Please sign in to comment.