]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: fix null_snapflush with multiple intervening snaps
authorSage Weil <sage@newdream.net>
Thu, 11 Nov 2010 04:58:49 +0000 (20:58 -0800)
committerSage Weil <sage@newdream.net>
Thu, 11 Nov 2010 04:58:49 +0000 (20:58 -0800)
commit3d10b340748e5bbff86b49ac7386da9efa27a070
tree89d0ace74c673fa989b8b06d28b582ba9c435d32
parent82aa79f8637914e3014a6c9c89516ed6778152eb
mds: fix null_snapflush with multiple intervening snaps

The client is allowed to not send a snapflush if there is no dirty metadata
to write for a given snap.  However, the mds can only look up inodes by
the last snapid in the interval.  So, when doing a null_snapflush (filling
in for snapflushes the client didn't send), we have to walk forward through
intervening snaps until we find the right inode.

Note that this means we will call _do_snap_update multiple times on the
same inode, but with different snapids.

Add unit test to check this.

Signed-off-by: Sage Weil <sage@newdream.net>
qa/workunits/snaptest-double-null.sh [new file with mode: 0755]
src/mds/Locker.cc