diff options
Diffstat (limited to 'fs/dquot.c')
-rw-r--r-- | fs/dquot.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/fs/dquot.c b/fs/dquot.c index 9af789567e51..0952cc474d9a 100644 --- a/fs/dquot.c +++ b/fs/dquot.c | |||
@@ -131,7 +131,7 @@ static struct quota_format_type *quota_formats; /* List of registered formats */ | |||
131 | static struct quota_module_name module_names[] = INIT_QUOTA_MODULE_NAMES; | 131 | static struct quota_module_name module_names[] = INIT_QUOTA_MODULE_NAMES; |
132 | 132 | ||
133 | /* SLAB cache for dquot structures */ | 133 | /* SLAB cache for dquot structures */ |
134 | static kmem_cache_t *dquot_cachep; | 134 | static struct kmem_cache *dquot_cachep; |
135 | 135 | ||
136 | int register_quota_format(struct quota_format_type *fmt) | 136 | int register_quota_format(struct quota_format_type *fmt) |
137 | { | 137 | { |
@@ -600,7 +600,7 @@ static struct dquot *get_empty_dquot(struct super_block *sb, int type) | |||
600 | { | 600 | { |
601 | struct dquot *dquot; | 601 | struct dquot *dquot; |
602 | 602 | ||
603 | dquot = kmem_cache_alloc(dquot_cachep, SLAB_NOFS); | 603 | dquot = kmem_cache_alloc(dquot_cachep, GFP_NOFS); |
604 | if(!dquot) | 604 | if(!dquot) |
605 | return NODQUOT; | 605 | return NODQUOT; |
606 | 606 | ||
@@ -694,9 +694,9 @@ restart: | |||
694 | file_list_lock(); | 694 | file_list_lock(); |
695 | list_for_each(p, &sb->s_files) { | 695 | list_for_each(p, &sb->s_files) { |
696 | struct file *filp = list_entry(p, struct file, f_u.fu_list); | 696 | struct file *filp = list_entry(p, struct file, f_u.fu_list); |
697 | struct inode *inode = filp->f_dentry->d_inode; | 697 | struct inode *inode = filp->f_path.dentry->d_inode; |
698 | if (filp->f_mode & FMODE_WRITE && dqinit_needed(inode, type)) { | 698 | if (filp->f_mode & FMODE_WRITE && dqinit_needed(inode, type)) { |
699 | struct dentry *dentry = dget(filp->f_dentry); | 699 | struct dentry *dentry = dget(filp->f_path.dentry); |
700 | file_list_unlock(); | 700 | file_list_unlock(); |
701 | sb->dq_op->initialize(inode, type); | 701 | sb->dq_op->initialize(inode, type); |
702 | dput(dentry); | 702 | dput(dentry); |
@@ -828,6 +828,7 @@ static inline int need_print_warning(struct dquot *dquot) | |||
828 | static void print_warning(struct dquot *dquot, const char warntype) | 828 | static void print_warning(struct dquot *dquot, const char warntype) |
829 | { | 829 | { |
830 | char *msg = NULL; | 830 | char *msg = NULL; |
831 | struct tty_struct *tty; | ||
831 | int flag = (warntype == BHARDWARN || warntype == BSOFTLONGWARN) ? DQ_BLKS_B : | 832 | int flag = (warntype == BHARDWARN || warntype == BSOFTLONGWARN) ? DQ_BLKS_B : |
832 | ((warntype == IHARDWARN || warntype == ISOFTLONGWARN) ? DQ_INODES_B : 0); | 833 | ((warntype == IHARDWARN || warntype == ISOFTLONGWARN) ? DQ_INODES_B : 0); |
833 | 834 | ||
@@ -835,14 +836,15 @@ static void print_warning(struct dquot *dquot, const char warntype) | |||
835 | return; | 836 | return; |
836 | 837 | ||
837 | mutex_lock(&tty_mutex); | 838 | mutex_lock(&tty_mutex); |
838 | if (!current->signal->tty) | 839 | tty = get_current_tty(); |
840 | if (!tty) | ||
839 | goto out_lock; | 841 | goto out_lock; |
840 | tty_write_message(current->signal->tty, dquot->dq_sb->s_id); | 842 | tty_write_message(tty, dquot->dq_sb->s_id); |
841 | if (warntype == ISOFTWARN || warntype == BSOFTWARN) | 843 | if (warntype == ISOFTWARN || warntype == BSOFTWARN) |
842 | tty_write_message(current->signal->tty, ": warning, "); | 844 | tty_write_message(tty, ": warning, "); |
843 | else | 845 | else |
844 | tty_write_message(current->signal->tty, ": write failed, "); | 846 | tty_write_message(tty, ": write failed, "); |
845 | tty_write_message(current->signal->tty, quotatypes[dquot->dq_type]); | 847 | tty_write_message(tty, quotatypes[dquot->dq_type]); |
846 | switch (warntype) { | 848 | switch (warntype) { |
847 | case IHARDWARN: | 849 | case IHARDWARN: |
848 | msg = " file limit reached.\r\n"; | 850 | msg = " file limit reached.\r\n"; |
@@ -863,7 +865,7 @@ static void print_warning(struct dquot *dquot, const char warntype) | |||
863 | msg = " block quota exceeded.\r\n"; | 865 | msg = " block quota exceeded.\r\n"; |
864 | break; | 866 | break; |
865 | } | 867 | } |
866 | tty_write_message(current->signal->tty, msg); | 868 | tty_write_message(tty, msg); |
867 | out_lock: | 869 | out_lock: |
868 | mutex_unlock(&tty_mutex); | 870 | mutex_unlock(&tty_mutex); |
869 | } | 871 | } |