starnix_sync/
lock_ordering.rs1use crate::Unlocked;
6use lock_ordering_macro::lock_ordering;
7
8lock_ordering! {
9 Unlocked => FuseFsRenameLevel,
11 FuseFsRenameLevel => FuseDirEntryChildrenLevel,
12 FuseDirEntryChildrenLevel => FuseFsNodeInfoLevel,
13 FuseFsNodeInfoLevel => UninterruptibleLock,
14 Unlocked => ResourceAccessorLevel,
16 Unlocked => FileObjectOffset,
18 FileObjectOffset => BeforeFsNodeAppend,
19 Unlocked => BeforeFsNodeAppend,
22 BeforeFsNodeAppend => FsNodeAppend,
23 FsNodeAppend => FileOpsCore,
25 ResourceAccessorLevel => FileOpsCore,
26 FileOpsCore => UninterruptibleLock,
28 Unlocked => TaskRelease,
30 TaskRelease => FileOpsCore,
32 UninterruptibleLock => KernelIpTables,
34 UninterruptibleLock => KernelSwapFiles,
36 ProcessGroupState => ThreadGroupLimits,
38 MmDumpable => ThreadGroupLimits,
39 UninterruptibleLock => MmDumpable,
41 TaskRelease => ProcessGroupState,
44 UninterruptibleLock => ProcessGroupState,
45 FileOpsCore => ProcessGroupState,
48 FileOpsCore => UserFaultInner,
50 UninterruptibleLock => UserFaultInner,
51 UninterruptibleLock => MemoryPressureMonitor,
53 FileOpsCore => MemoryPressureMonitor,
54 MemoryPressureMonitor => MemoryPressureMonitorClientState,
55 UninterruptibleLock => FastrpcInnerState,
57 UninterruptibleLock => MemoryXattrStorageLevel,
59 UninterruptibleLock => DeviceRegistryState,
61 FileOpsCore => DeviceRegistryState,
62
63 UninterruptibleLock => RemoteBinderHandleLevel,
65 RemoteBinderHandleLevel => BinderProcsLevel,
66 FileObjectOffset => BinderFsDevicesLevel,
67 DirEntryChildrenLevel => BinderFsDevicesLevel,
68 BinderFsDevicesLevel => FsNodeInfoLevel,
69 FsNodeInfoLevel => TerminalLock,
70 BinderFsDevicesLevel => DeviceRegistryState,
71 BinderProcsLevel => BinderProcessSharedMemoryLevel,
72 BinderProcessSharedMemoryLevel => BinderFreezeLevel,
73 BinderFreezeLevel => BinderProcessStateLevel,
74 BinderProcessSharedMemoryLevel => DeviceRegistryState,
75 BinderProcessStateLevel => BinderContextManagerLevel,
76 BinderContextManagerLevel => TerminalLock,
77 FileOpsCore => BinderContextManagerLevel,
78 UninterruptibleLock => BinderObjectLevel,
79 FileOpsCore => BinderObjectLevel,
80 BinderProcessStateLevel => BinderObjectLevel,
81 BinderObjectLevel => TerminalLock,
82
83 BinderProcessSharedMemoryLevel => FsRenameRecursive,
85 FsRenameRecursive => DirEntryChildrenRecursiveLevel,
86 DirEntryChildrenRecursiveLevel => FsNodeInfoRecursiveLevel,
87 FsNodeInfoRecursiveLevel => FsRename,
88 FsRename => DirEntryChildrenLevel,
89
90 UninterruptibleLock => TerminalLock,
93 FileOpsCore => TerminalLock,
94
95 UninterruptibleLock => EbpfStateLock,
97 UninterruptibleLock => EbpfMapStateLevel,
98 EbpfStateLock => EbpfSuspendLock,
99 EbpfMapStateLevel => EbpfSuspendLock,
100}