starnix_sync/
lock_ordering.rs1use crate::Unlocked;
6use lock_ordering_macro::lock_ordering;
7
8lock_ordering! {
9 Unlocked => FuseFsRenameLevel,
11 FuseFsRenameLevel => FuseDirEntryChildrenLevel,
12 FuseDirEntryChildrenLevel => UninterruptibleLock,
13 Unlocked => ResourceAccessorLevel,
15 Unlocked => FileObjectOffset,
17 FileObjectOffset => BeforeFsNodeAppend,
18 Unlocked => BeforeFsNodeAppend,
21 BeforeFsNodeAppend => FsNodeAppend,
22 FsNodeAppend => FileOpsCore,
24 ResourceAccessorLevel => FileOpsCore,
25 FileOpsCore => UninterruptibleLock,
27 Unlocked => TaskRelease,
29 TaskRelease => FileOpsCore,
31 UninterruptibleLock => KernelIpTables,
33 UninterruptibleLock => KernelSwapFiles,
35 ProcessGroupState => ThreadGroupLimits,
37 MmDumpable => ThreadGroupLimits,
38 UninterruptibleLock => MmDumpable,
40 TaskRelease => ProcessGroupState,
43 UninterruptibleLock => ProcessGroupState,
44 FileOpsCore => ProcessGroupState,
47 FileOpsCore => UserFaultInner,
49 UninterruptibleLock => UserFaultInner,
50 UninterruptibleLock => MemoryPressureMonitor,
52 FileOpsCore => MemoryPressureMonitor,
53 MemoryPressureMonitor => MemoryPressureMonitorClientState,
54 UninterruptibleLock => FastrpcInnerState,
56 UninterruptibleLock => MemoryXattrStorageLevel,
58 UninterruptibleLock => DeviceRegistryState,
60 FileOpsCore => DeviceRegistryState,
61
62 UninterruptibleLock => RemoteBinderHandleLevel,
64 RemoteBinderHandleLevel => BinderProcsLevel,
65 FileObjectOffset => BinderFsDevicesLevel,
66 DirEntryChildrenLevel => BinderFsDevicesLevel,
67 BinderFsDevicesLevel => DeviceRegistryState,
68 BinderProcsLevel => BinderProcessSharedMemoryLevel,
69 BinderProcessSharedMemoryLevel => BinderFreezeLevel,
70 BinderFreezeLevel => BinderProcessStateLevel,
71 BinderProcessSharedMemoryLevel => DeviceRegistryState,
72 BinderProcessStateLevel => BinderContextManagerLevel,
73 BinderContextManagerLevel => TerminalLock,
74 FileOpsCore => BinderContextManagerLevel,
75 UninterruptibleLock => BinderObjectLevel,
76 FileOpsCore => BinderObjectLevel,
77 BinderProcessStateLevel => BinderObjectLevel,
78 BinderObjectLevel => TerminalLock,
79
80 BinderProcessSharedMemoryLevel => FsRenameRecursive,
82 FsRenameRecursive => DirEntryChildrenRecursiveLevel,
83 DirEntryChildrenRecursiveLevel => FsRename,
84 FsRename => DirEntryChildrenLevel,
85
86 UninterruptibleLock => TerminalLock,
89 FileOpsCore => TerminalLock,
90
91 UninterruptibleLock => EbpfStateLock,
93 UninterruptibleLock => EbpfMapStateLevel,
94 EbpfStateLock => EbpfSuspendLock,
95 EbpfMapStateLevel => EbpfSuspendLock,
96}