Loading fs/quota/dquot.c +16 −23 Original line number Diff line number Diff line Loading @@ -628,6 +628,18 @@ int dquot_scan_active(struct super_block *sb, } EXPORT_SYMBOL(dquot_scan_active); static inline int dquot_write_dquot(struct dquot *dquot) { int ret = dquot->dq_sb->dq_op->write_dquot(dquot); if (ret < 0) { quota_error(dquot->dq_sb, "Can't write quota structure " "(error %d). Quota may get out of sync!", ret); /* Clear dirty bit anyway to avoid infinite loop. */ clear_dquot_dirty(dquot); } return ret; } /* Write all dquot structures to quota files */ int dquot_writeback_dquots(struct super_block *sb, int type) { Loading Loading @@ -658,16 +670,9 @@ int dquot_writeback_dquots(struct super_block *sb, int type) * use count */ dqgrab(dquot); spin_unlock(&dq_list_lock); err = sb->dq_op->write_dquot(dquot); if (err) { /* * Clear dirty bit anyway to avoid infinite * loop here. */ clear_dquot_dirty(dquot); if (!ret) err = dquot_write_dquot(dquot); if (err && !ret) ret = err; } dqput(dquot); spin_lock(&dq_list_lock); } Loading Loading @@ -765,8 +770,6 @@ static struct shrinker dqcache_shrinker = { */ void dqput(struct dquot *dquot) { int ret; if (!dquot) return; #ifdef CONFIG_QUOTA_DEBUG Loading Loading @@ -794,17 +797,7 @@ void dqput(struct dquot *dquot) if (dquot_dirty(dquot)) { spin_unlock(&dq_list_lock); /* Commit dquot before releasing */ ret = dquot->dq_sb->dq_op->write_dquot(dquot); if (ret < 0) { quota_error(dquot->dq_sb, "Can't write quota structure" " (error %d). Quota may get out of sync!", ret); /* * We clear dirty bit anyway, so that we avoid * infinite loop here */ clear_dquot_dirty(dquot); } dquot_write_dquot(dquot); goto we_slept; } if (test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) { Loading Loading
fs/quota/dquot.c +16 −23 Original line number Diff line number Diff line Loading @@ -628,6 +628,18 @@ int dquot_scan_active(struct super_block *sb, } EXPORT_SYMBOL(dquot_scan_active); static inline int dquot_write_dquot(struct dquot *dquot) { int ret = dquot->dq_sb->dq_op->write_dquot(dquot); if (ret < 0) { quota_error(dquot->dq_sb, "Can't write quota structure " "(error %d). Quota may get out of sync!", ret); /* Clear dirty bit anyway to avoid infinite loop. */ clear_dquot_dirty(dquot); } return ret; } /* Write all dquot structures to quota files */ int dquot_writeback_dquots(struct super_block *sb, int type) { Loading Loading @@ -658,16 +670,9 @@ int dquot_writeback_dquots(struct super_block *sb, int type) * use count */ dqgrab(dquot); spin_unlock(&dq_list_lock); err = sb->dq_op->write_dquot(dquot); if (err) { /* * Clear dirty bit anyway to avoid infinite * loop here. */ clear_dquot_dirty(dquot); if (!ret) err = dquot_write_dquot(dquot); if (err && !ret) ret = err; } dqput(dquot); spin_lock(&dq_list_lock); } Loading Loading @@ -765,8 +770,6 @@ static struct shrinker dqcache_shrinker = { */ void dqput(struct dquot *dquot) { int ret; if (!dquot) return; #ifdef CONFIG_QUOTA_DEBUG Loading Loading @@ -794,17 +797,7 @@ void dqput(struct dquot *dquot) if (dquot_dirty(dquot)) { spin_unlock(&dq_list_lock); /* Commit dquot before releasing */ ret = dquot->dq_sb->dq_op->write_dquot(dquot); if (ret < 0) { quota_error(dquot->dq_sb, "Can't write quota structure" " (error %d). Quota may get out of sync!", ret); /* * We clear dirty bit anyway, so that we avoid * infinite loop here */ clear_dquot_dirty(dquot); } dquot_write_dquot(dquot); goto we_slept; } if (test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) { Loading