ceph/ceph — pull request #2786 by gregsfortytwo (2014-10-23 20:44:59+00:00)
Title: client: cast m->get_client_tid() to compare to 16-bit Inode::flushing_cap_tid

m->get_client_tid() is 64 bits (as it should be), but Inode::flushing_cap_tid
is only 16 bits. 16 bits should be plenty to let the cap flush updates
pipeline appropriately, but we need to cast in the proper direction when
comparing these differently-sized versions. So downcast the 64-bit one
to 16 bits.

Fixes: #9869

I tested this manually by bumping up the initial last_flush_tid value to 65535 on master and then turning on the client. There were immediate issues with cap flushing visible on new file creates in the log. Doing the same with this patch applied made everything work fine.