Bug #54463
closedmds: flush mdlog if locked and still has wanted caps not satisfied
0%
Description
In _do_cap_update() if one client is releasing the Fw caps the
relevant client range will be erased, and then new_max will be 0.
It will skip flushing the mdlog after it submitting a journal log,
which will keep holding the wrlock for the filelock.
So when a new client is trying to open the file for reading, since
the wrlock is locked for the filelock the file_eval() is possibly
couldn't changing the lock state and at the same time if the
filelock is in stable state, such as in EXECL, MIX. The mds may
skip flushing the mdlog in the open related code too.
We need to flush the mdlog if there still has any wanted caps
couldn't be satisfied and has any lock for the filelock after the
file_eval().
Updated by Xiubo Li about 2 years ago
More detail please see bz: https://bugzilla.redhat.com/show_bug.cgi?id=2049653
Updated by Xiubo Li about 2 years ago
- Subject changed from mds: flush the mdlog when file size changes to mds: flush mdlog if locked and still has wanted caps not satisfied
Updated by Patrick Donnelly almost 2 years ago
- Status changed from Fix Under Review to Pending Backport
- Target version set to v18.0.0
Updated by Backport Bot almost 2 years ago
- Copied to Backport #55756: quincy: mds: flush mdlog if locked and still has wanted caps not satisfied added
Updated by Backport Bot almost 2 years ago
- Copied to Backport #55757: pacific: mds: flush mdlog if locked and still has wanted caps not satisfied added
Updated by Xiubo Li over 1 year ago
- Status changed from Pending Backport to Resolved