[PATCH 1/3] quota: optimize mark_dirty logic

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Dmitry Monakhov
Date: Saturday, March 27, 2010 - 5:15 am

- Skipp locking if quota is dirty already.
- Return old quota state to help fs-specciffic implementation to optimize
  case where quota was dirty already.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
---
 fs/quota/dquot.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index e0b870f..88a8ef2 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -319,14 +319,23 @@ static inline int mark_dquot_dirty(struct dquot *dquot)
 	return dquot->dq_sb->dq_op->mark_dirty(dquot);
 }
 
+/* Mark dquot dirty in atomic meaner, and return it's old dirty flag state */
 int dquot_mark_dquot_dirty(struct dquot *dquot)
 {
+	int ret = 1;
+
+	/* If quota is dirtly already we don't have to acquire dq_list_lock */
+	if (test_bit(DQ_MOD_B, &dquot->dq_flags))
+		return 1;
+
 	spin_lock(&dq_list_lock);
-	if (!test_and_set_bit(DQ_MOD_B, &dquot->dq_flags))
+	if (!test_and_set_bit(DQ_MOD_B, &dquot->dq_flags)) {
 		list_add(&dquot->dq_dirty, &sb_dqopt(dquot->dq_sb)->
 				info[dquot->dq_type].dqi_dirty_list);
+		ret = 0;
+	}
 	spin_unlock(&dq_list_lock);
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL(dquot_mark_dquot_dirty);
 
-- 
1.6.6.1

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/3] ext4/quota: journalled quota optimizations, Dmitry Monakhov, (Sat Mar 27, 5:15 am)
[PATCH 1/3] quota: optimize mark_dirty logic, Dmitry Monakhov, (Sat Mar 27, 5:15 am)
[PATCH 2/3] ext4: journalled quota optimization, Dmitry Monakhov, (Sat Mar 27, 5:15 am)
[PATCH 3/3] ext4: optimize quota write locking, Dmitry Monakhov, (Sat Mar 27, 5:15 am)
Re: [PATCH 2/3] ext4: journalled quota optimization, Dmitry Monakhov, (Wed Apr 7, 1:12 am)