HAMMER VFS - Fix edge case in mirroring code.
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 7 Apr 2009 23:03:24 +0000 (16:03 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 7 Apr 2009 23:03:24 +0000 (16:03 -0700)
commitf96881ff3fe0148e6fb07645eedced10b05a1769
tree71233830c030a59a7361608c80477c9bb1bc28c1
parentfeea6f1a401a9f0e2d02bff227a1e556e97e168f
HAMMER VFS - Fix edge case in mirroring code.

There is an edge case where a record is physically destroyed on the master
and a mirroring or mirror-streaming operation attempts to delete the record
on the slave using a mirror-end TID that in fact matches the create_tid of
the record.  This results in a protective panic.

Fix the problem simply by not deleting such edge-case records.  They will
be deleted in the next pass, since in order to have been destroyed on the
master the master must have done the operation with a larger TID then
the create_tid of the record that was destroyed.

Reported-by: Brad Frank <brad.frank@gmail.com>
sys/vfs/hammer/hammer_mirror.c