|
@@ -754,7 +754,9 @@ static int ocfs2_mark_dquot_dirty(struct dquot *dquot)
|
|
if (dquot->dq_flags & mask)
|
|
if (dquot->dq_flags & mask)
|
|
sync = 1;
|
|
sync = 1;
|
|
spin_unlock(&dq_data_lock);
|
|
spin_unlock(&dq_data_lock);
|
|
- if (!sync) {
|
|
|
|
|
|
+ /* This is a slight hack but we can't afford getting global quota
|
|
|
|
+ * lock if we already have a transaction started. */
|
|
|
|
+ if (!sync || journal_current_handle()) {
|
|
status = ocfs2_write_dquot(dquot);
|
|
status = ocfs2_write_dquot(dquot);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|