From: Jan Kara <jack@ucw.cz>
I've attached a fix for a problem in ext3 journalled quota patch - the problem
is that detecting whether dqput() sleeps was wrong and so we could possibly
schedule when holding a spinlock.
/* Return 0 if dqput() won't block (note that 1 doesn't necessarily mean blocking) */
static inline int dqput_blocks(struct dquot *dquot)
{
- if (atomic_read(&dquot->dq_count) <= 1 && dquot_dirty(dquot))
+ if (atomic_read(&dquot->dq_count) <= 1)
return 1;
return 0;
}