/* Add a dquot to the tail of the free list */
static inline void put_dquot_last(struct dquot *dquot)
{
- list_add_tail(&dquot->dq_free, &free_dquots);
+ list_add(&dquot->dq_free, free_dquots.prev);
dqstats.free_dquots++;
}
{
/* We add to the back of inuse list so we don't have to restart
* when traversing this list and we block */
- list_add_tail(&dquot->dq_inuse, &inuse_list);
+ list_add(&dquot->dq_inuse, inuse_list.prev);
dqstats.allocated_dquots++;
}
static void print_warning(struct dquot *dquot, const char warntype)
{
char *msg = NULL;
- struct tty_struct *tty;
int flag = (warntype == BHARDWARN || warntype == BSOFTLONGWARN) ? DQ_BLKS_B :
((warntype == IHARDWARN || warntype == ISOFTLONGWARN) ? DQ_INODES_B : 0);
if (!need_print_warning(dquot) || (flag && test_and_set_bit(flag, &dquot->dq_flags)))
return;
- mutex_lock(&tty_mutex);
- tty = get_current_tty();
- if (!tty)
- goto out_lock;
- tty_write_message(tty, dquot->dq_sb->s_id);
+ tty_write_message(current->signal->tty, dquot->dq_sb->s_id);
if (warntype == ISOFTWARN || warntype == BSOFTWARN)
- tty_write_message(tty, ": warning, ");
+ tty_write_message(current->signal->tty, ": warning, ");
else
- tty_write_message(tty, ": write failed, ");
- tty_write_message(tty, quotatypes[dquot->dq_type]);
+ tty_write_message(current->signal->tty, ": write failed, ");
+ tty_write_message(current->signal->tty, quotatypes[dquot->dq_type]);
switch (warntype) {
case IHARDWARN:
msg = " file limit reached.\r\n";
msg = " block quota exceeded.\r\n";
break;
}
- tty_write_message(tty, msg);
-out_lock:
- mutex_unlock(&tty_mutex);
+ tty_write_message(current->signal->tty, msg);
}
static inline void flush_warnings(struct dquot **dquots, char *warntype)