ceph: fix cap_snap and realm split
authorSage Weil <sage@newdream.net>
Thu, 16 Sep 2010 23:26:51 +0000 (16:26 -0700)
committerSage Weil <sage@newdream.net>
Thu, 16 Sep 2010 23:26:51 +0000 (16:26 -0700)
commitae00d4f37f4df56821331deb1028748110dd6dc9
tree52437bde7370fc7a21193c27a08dc1d7238cee98
parentcfc0bf6640dfd0f43bf8bfec5a475284809baa4d
ceph: fix cap_snap and realm split

The cap_snap creation/queueing relies on both the current i_head_snapc
_and_ the i_snap_realm pointers being correct, so that the new cap_snap
can properly reference the old context and the new i_head_snapc can be
updated to reference the new snaprealm's context.  To fix this, we:

 - move inodes completely to the new (split) realm so that i_snap_realm
   is correct, and
 - generate the new snapc's _before_ queueing the cap_snaps in
   ceph_update_snap_trace().

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/addr.c
fs/ceph/snap.c
fs/ceph/super.h