From: Sage Weil Date: Tue, 29 Nov 2011 05:37:18 +0000 (-0800) Subject: mds: encode truncate_pending in inode X-Git-Tag: v0.39~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c2889fef420611df3dd0de4064c91f6aa9f86625;p=ceph-ci.git mds: encode truncate_pending in inode Otherwise we don't actually journal this value, and we get confused when we replay a start_truncate and try to restart it. Fixes: #1756 Signed-off-by: Sage Weil --- diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index eeedf6e8b4f..faa20d3efc7 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -476,7 +476,7 @@ struct inode_t { } void encode(bufferlist &bl) const { - __u8 v = 4; + __u8 v = 5; ::encode(v, bl); ::encode(ino, bl); @@ -496,6 +496,7 @@ struct inode_t { ::encode(truncate_seq, bl); ::encode(truncate_size, bl); ::encode(truncate_from, bl); + ::encode(truncate_pending, bl); ::encode(mtime, bl); ::encode(atime, bl); ::encode(time_warp_seq, bl); @@ -534,6 +535,10 @@ struct inode_t { ::decode(truncate_seq, p); ::decode(truncate_size, p); ::decode(truncate_from, p); + if (v >= 5) + ::decode(truncate_pending, p); + else + truncate_pending = 0; ::decode(mtime, p); ::decode(atime, p); ::decode(time_warp_seq, p);