diff options
author | Alan Cox <alan@redhat.com> | 2008-10-13 05:39:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-13 12:51:41 -0400 |
commit | 452a00d2ee288f2cbc36f676edd06cb14d2878c1 (patch) | |
tree | c8251c73924a6ac9b174bc557357bfeff0c8d1a8 /fs/dquot.c | |
parent | f4d2a6c2096b764decb20070b1bf4356de9144a8 (diff) |
tty: Make get_current_tty use a kref
We now return a kref covered tty reference. That ensures the tty structure
doesn't go away when you have a return from get_current_tty. This is not
enough to protect you from most of the resources being freed behind your
back - yet.
[Updated to include fixes for SELinux problems found by Andrew Morton and
an s390 leak found while debugging the former]
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/dquot.c')
-rw-r--r-- | fs/dquot.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/dquot.c b/fs/dquot.c index 8ec4d6cc7633..7417a6ca3129 100644 --- a/fs/dquot.c +++ b/fs/dquot.c | |||
@@ -897,8 +897,9 @@ static void print_warning(struct dquot *dquot, const int warntype) | |||
897 | 897 | ||
898 | mutex_lock(&tty_mutex); | 898 | mutex_lock(&tty_mutex); |
899 | tty = get_current_tty(); | 899 | tty = get_current_tty(); |
900 | mutex_unlock(&tty_mutex); | ||
900 | if (!tty) | 901 | if (!tty) |
901 | goto out_lock; | 902 | return; |
902 | tty_write_message(tty, dquot->dq_sb->s_id); | 903 | tty_write_message(tty, dquot->dq_sb->s_id); |
903 | if (warntype == QUOTA_NL_ISOFTWARN || warntype == QUOTA_NL_BSOFTWARN) | 904 | if (warntype == QUOTA_NL_ISOFTWARN || warntype == QUOTA_NL_BSOFTWARN) |
904 | tty_write_message(tty, ": warning, "); | 905 | tty_write_message(tty, ": warning, "); |
@@ -926,8 +927,7 @@ static void print_warning(struct dquot *dquot, const int warntype) | |||
926 | break; | 927 | break; |
927 | } | 928 | } |
928 | tty_write_message(tty, msg); | 929 | tty_write_message(tty, msg); |
929 | out_lock: | 930 | tty_kref_put(tty); |
930 | mutex_unlock(&tty_mutex); | ||
931 | } | 931 | } |
932 | #endif | 932 | #endif |
933 | 933 | ||