Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 105881
b: refs/heads/master
c: 02a55ca
h: refs/heads/master
i:
  105879: 30200a2
v: v3
  • Loading branch information
Jan Kara authored and Linus Torvalds committed Jul 25, 2008
1 parent b9a9a84 commit 28a30ea
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b85f4b87a511bea86dac68c4f0fabaee2cac6c4c
refs/heads/master: 02a55ca87185e114e5d298a8d00608501dbabf67
18 changes: 12 additions & 6 deletions trunk/fs/quota.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ static void quota_sync_sb(struct super_block *sb, int type)

void sync_dquots(struct super_block *sb, int type)
{
int cnt, dirty;
int cnt;

if (sb) {
if (sb->s_qcop->quota_sync)
Expand All @@ -198,11 +198,17 @@ void sync_dquots(struct super_block *sb, int type)
restart:
list_for_each_entry(sb, &super_blocks, s_list) {
/* This test just improves performance so it needn't be reliable... */
for (cnt = 0, dirty = 0; cnt < MAXQUOTAS; cnt++)
if ((type == cnt || type == -1) && sb_has_quota_enabled(sb, cnt)
&& info_any_dirty(&sb_dqopt(sb)->info[cnt]))
dirty = 1;
if (!dirty)
for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
if (type != -1 && type != cnt)
continue;
if (!sb_has_quota_enabled(sb, cnt))
continue;
if (!info_dirty(&sb_dqopt(sb)->info[cnt]) &&
list_empty(&sb_dqopt(sb)->info[cnt].dqi_dirty_list))
continue;
break;
}
if (cnt == MAXQUOTAS)
continue;
sb->s_count++;
spin_unlock(&sb_lock);
Expand Down
2 changes: 0 additions & 2 deletions trunk/include/linux/quota.h
Original file line number Diff line number Diff line change
Expand Up @@ -224,8 +224,6 @@ struct super_block;

extern void mark_info_dirty(struct super_block *sb, int type);
#define info_dirty(info) test_bit(DQF_INFO_DIRTY_B, &(info)->dqi_flags)
#define info_any_dquot_dirty(info) (!list_empty(&(info)->dqi_dirty_list))
#define info_any_dirty(info) (info_dirty(info) || info_any_dquot_dirty(info))

#define sb_dqopt(sb) (&(sb)->s_dquot)
#define sb_dqinfo(sb, type) (sb_dqopt(sb)->info+(type))
Expand Down

0 comments on commit 28a30ea

Please sign in to comment.