Commit 135b9a3 1 parent 072743f commit 135b9a3 Copy full SHA for 135b9a3
File tree 1 file changed +11
-1
lines changed
1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -190,7 +190,15 @@ static int remove_save_link_only(struct super_block *s,
190
190
static int reiserfs_quota_on_mount (struct super_block * , int );
191
191
#endif
192
192
193
- /* look for uncompleted unlinks and truncates and complete them */
193
+ /*
194
+ * Look for uncompleted unlinks and truncates and complete them
195
+ *
196
+ * Called with superblock write locked. If quotas are enabled, we have to
197
+ * release/retake lest we call dquot_quota_on_mount(), proceed to
198
+ * schedule_on_each_cpu() in invalidate_bdev() and deadlock waiting for the per
199
+ * cpu worklets to complete flush_async_commits() that in turn wait for the
200
+ * superblock write lock.
201
+ */
194
202
static int finish_unfinished (struct super_block * s )
195
203
{
196
204
INITIALIZE_PATH (path );
@@ -237,7 +245,9 @@ static int finish_unfinished(struct super_block *s)
237
245
quota_enabled [i ] = 0 ;
238
246
continue ;
239
247
}
248
+ reiserfs_write_unlock (s );
240
249
ret = reiserfs_quota_on_mount (s , i );
250
+ reiserfs_write_lock (s );
241
251
if (ret < 0 )
242
252
reiserfs_warning (s , "reiserfs-2500" ,
243
253
"cannot turn on journaled "
You can’t perform that action at this time.
0 commit comments