On Sat 09-10-10 23:15:30, Dmitry wrote: > > I've got following lockup: > dquot_disable dquot_transfer > ->dqget() > sb_has_quota_active > dqopt->flags &= ~dquot_state_flag(f, cnt) atomic_inc(dq->dq_count) > ->drop_dquot_ref(sb, cnt); > down_write(dqptr_sem) > inode->i_dquot[cnt] = NULL ->__dquot_transfer > invalidate_dquots(sb, cnt); down_write(&dqptr_sem) > ->wait for dq_wait_unused inode->i_dquot = new_dquot > /* wait forever */ ^^^^New quota user^^^^^^ > > Inodes was already cleaned from quotas, and we can not allow new ones. > We have to recheck quota state under dqptr_sem and before assignment, > as we do it in dquot_initialize() Thanks. Merged into my tree. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html