Details
-
Technical task
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
This tracks the implementation of the basic version of the active writer lock.
There is a prototype patch here, which should be split into several patches:
https://review.whamcloud.com/c/fs/lustre-release/+/59605
This patch adds basic support, but this task explicitly does NOT include holding the locks until buffered IO data is committed. This will be handled as part of implementing buffered IO. It also does not implement error communication to the server on lock release, that will also be handled in a different task.
This ticket is to track cleaning this patch up for landing.
Patch description:
Add support for active writer locks, which are taken by the client while actively writing an immediately mirrored file. This adds a new bit to the MDT IBITs lock, and creates & releases the lock as appropriate from the client. This is done with a new type of intent lock - IT_ACTIVE_WRITER.
This lock is specialized so it will call the blocking callback on cancellations from the client, and it counts the number of active writer locks currently held so it can correctly manage state transitions.
We should split the patch so it creates the active writer lock and takes it at the appropriate time, then the special callback handling is added. (See prototype commit message)