@@ -89,6 +89,23 @@ static inline int is_blockdev(struct device *dev)
89
89
static inline int is_blockdev (struct device * dev ) { return 0 ; }
90
90
#endif
91
91
92
+ static int devtmpfs_submit_req (struct req * req , const char * tmp )
93
+ {
94
+ init_completion (& req -> done );
95
+
96
+ spin_lock (& req_lock );
97
+ req -> next = requests ;
98
+ requests = req ;
99
+ spin_unlock (& req_lock );
100
+
101
+ wake_up_process (thread );
102
+ wait_for_completion (& req -> done );
103
+
104
+ kfree (tmp );
105
+
106
+ return req -> err ;
107
+ }
108
+
92
109
int devtmpfs_create_node (struct device * dev )
93
110
{
94
111
const char * tmp = NULL ;
@@ -113,19 +130,7 @@ int devtmpfs_create_node(struct device *dev)
113
130
114
131
req .dev = dev ;
115
132
116
- init_completion (& req .done );
117
-
118
- spin_lock (& req_lock );
119
- req .next = requests ;
120
- requests = & req ;
121
- spin_unlock (& req_lock );
122
-
123
- wake_up_process (thread );
124
- wait_for_completion (& req .done );
125
-
126
- kfree (tmp );
127
-
128
- return req .err ;
133
+ return devtmpfs_submit_req (& req , tmp );
129
134
}
130
135
131
136
int devtmpfs_delete_node (struct device * dev )
@@ -143,18 +148,7 @@ int devtmpfs_delete_node(struct device *dev)
143
148
req .mode = 0 ;
144
149
req .dev = dev ;
145
150
146
- init_completion (& req .done );
147
-
148
- spin_lock (& req_lock );
149
- req .next = requests ;
150
- requests = & req ;
151
- spin_unlock (& req_lock );
152
-
153
- wake_up_process (thread );
154
- wait_for_completion (& req .done );
155
-
156
- kfree (tmp );
157
- return req .err ;
151
+ return devtmpfs_submit_req (& req , tmp );
158
152
}
159
153
160
154
static int dev_mkdir (const char * name , umode_t mode )
0 commit comments