ceph: maintain i_head_snapc when any caps are dirty, not just for data
authorSage Weil <sage@newdream.net>
Tue, 24 Aug 2010 15:44:16 +0000 (08:44 -0700)
committerSage Weil <sage@newdream.net>
Tue, 24 Aug 2010 23:24:18 +0000 (16:24 -0700)
commit7d8cb26d7dcb911f110b7762bd5941e8f009d6c3
tree2adf2f6303cc96ff14c951dc6966f68a0fc3cf25
parent07a27e226d1ed210d2d4218bd0642b40f5405c6a
ceph: maintain i_head_snapc when any caps are dirty, not just for data

We used to use i_head_snapc to keep track of which snapc the current epoch
of dirty data was dirtied under.  It is used by queue_cap_snap to set up
the cap_snap.  However, since we queue cap snaps for any dirty caps, not
just for dirty file data, we need to keep a valid i_head_snapc anytime
we have dirty|flushing caps.  This fixes a NULL pointer deref in
queue_cap_snap when writing back dirty caps without data (e.g.,
snaptest-authwb.sh).

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