quota: Make quota stat accounting lockless.
Quota stats is mostly writable data structure. Let's alloc percpu bucket for each value. NOTE: dqstats_read() function is racy against dqstats_{inc,dec} and may return inconsistent value. But this is ok since absolute accuracy is not required. Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:

committed by
Jan Kara

parent
da8d1ba22f
commit
dde9588853
@@ -384,7 +384,7 @@ int qtree_write_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot)
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
dqstats.writes++;
|
||||
dqstats_inc(DQST_WRITES);
|
||||
kfree(ddquot);
|
||||
|
||||
return ret;
|
||||
@@ -634,7 +634,7 @@ int qtree_read_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot)
|
||||
spin_unlock(&dq_data_lock);
|
||||
kfree(ddquot);
|
||||
out:
|
||||
dqstats.reads++;
|
||||
dqstats_inc(DQST_READS);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(qtree_read_dquot);
|
||||
|
Reference in New Issue
Block a user