On 2020-07-19, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: >> The MNT_WRITE_HOLD flag is used to manually implement a rwsem. > > Could you show me where does it currently sleep? Your version does, > unless I'm misreading it... You are reading it correctly. This patch introduces new possible sleeping for__mnt_want_write() when writers for a superblock are being held. The RFCv1 [0] is a variant that does not introduce sleeping, but instead reverts back to per-cpu spinlocks. Sebastian and I are requesting comments on these two possible solutions. Or perhaps you have an idea how to solve the potential live lock situation. John Ogness [0] https://lkml.kernel.org/r/20200617104058.14902-2-john.ogness@xxxxxxxxxxxxx