Re: [PATCH v2] ceph: force a cap message when a deferred revoke can't be acked immediately
Alex Markuze <[email protected]>
| Newsgroups | org.kernel.vger.ceph-devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Max, Two issues in v2: The clear_bit(CEPH_I_FLUSH_FORCE_BIT) in ceph_check_caps() fires whenever any cap flush completes on the inode, not only when the deferred-revoke cap message itself is done. A concurrent cap flush for a different cap clears the flag prematurely, before the deferred revoke is handled. Also, ci->i_ceph_flags |= CEPH_I_FLUSH_FORCE is a non-atomic read-modify-write — every other flag on i_ceph_flags uses set_bit() / clear_bit(). This one should be set_bit(CEPH_I_FLUSH_FORCE_BIT, &ci->i_ceph_flags). Could you respin? -- Alex Markuze