From patchwork Thu Apr 28 04:03:31 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 1207 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:50:09 -0000 Delivered-To: patches@linaro.org Received: by 10.224.2.73 with SMTP id 9cs133604qai; Wed, 27 Apr 2011 21:03:43 -0700 (PDT) Received: by 10.52.108.195 with SMTP id hm3mr849773vdb.201.1303963423372; Wed, 27 Apr 2011 21:03:43 -0700 (PDT) Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.144]) by mx.google.com with ESMTPS id x16si2015966vbl.46.2011.04.27.21.03.43 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Apr 2011 21:03:43 -0700 (PDT) Received-SPF: pass (google.com: domain of jstultz@us.ibm.com designates 32.97.182.144 as permitted sender) client-ip=32.97.182.144; Authentication-Results: mx.google.com; spf=pass (google.com: domain of jstultz@us.ibm.com designates 32.97.182.144 as permitted sender) smtp.mail=jstultz@us.ibm.com Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e4.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p3S3hJV6006044; Wed, 27 Apr 2011 23:43:19 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p3S43goH089266; Thu, 28 Apr 2011 00:03:42 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p3S43fIX028814; Thu, 28 Apr 2011 00:03:42 -0400 Received: from kernel.beaverton.ibm.com (kernel.beaverton.ibm.com [9.47.67.96]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p3S43exK028810; Thu, 28 Apr 2011 00:03:40 -0400 Received: by kernel.beaverton.ibm.com (Postfix, from userid 1056) id 4B94D1E7510; Wed, 27 Apr 2011 21:03:40 -0700 (PDT) From: John Stultz To: LKML Cc: John Stultz , KOSAKI Motohiro , David Rientjes , Dave Hansen , Andrew Morton , linux-mm@kvack.org Subject: [PATCH 3/3] comm: ext4: Protect task->comm access by using get_task_comm() Date: Wed, 27 Apr 2011 21:03:31 -0700 Message-Id: <1303963411-2064-4-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 1.7.3.2.146.gca209 In-Reply-To: <1303963411-2064-1-git-send-email-john.stultz@linaro.org> References: <1303963411-2064-1-git-send-email-john.stultz@linaro.org> Converts ext4 comm access to use the safe get_task_comm accessor. CC: KOSAKI Motohiro CC: David Rientjes CC: Dave Hansen CC: Andrew Morton CC: linux-mm@kvack.org Signed-off-by: John Stultz --- fs/ext4/file.c | 8 ++++++-- fs/ext4/super.c | 13 ++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 7b80d54..d37414e 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -124,11 +124,15 @@ ext4_file_write(struct kiocb *iocb, const struct iovec *iov, static unsigned long unaligned_warn_time; /* Warn about this once per day */ - if (printk_timed_ratelimit(&unaligned_warn_time, 60*60*24*HZ)) + if (printk_timed_ratelimit(&unaligned_warn_time, 60*60*24*HZ)) { + char comm[TASK_COMM_LEN]; + + get_task_comm(comm, current); ext4_msg(inode->i_sb, KERN_WARNING, "Unaligned AIO/DIO on inode %ld by %s; " "performance will be poor.", - inode->i_ino, current->comm); + inode->i_ino, comm); + } mutex_lock(ext4_aio_mutex(inode)); ext4_aiodio_wait(inode); } diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 8553dfb..6c9151f 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -409,12 +409,15 @@ void __ext4_error(struct super_block *sb, const char *function, { struct va_format vaf; va_list args; + char comm[TASK_COMM_LEN]; va_start(args, fmt); vaf.fmt = fmt; vaf.va = &args; + + get_task_comm(comm, current); printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: comm %s: %pV\n", - sb->s_id, function, line, current->comm, &vaf); + sb->s_id, function, line, comm, &vaf); va_end(args); ext4_handle_error(sb); @@ -427,6 +430,7 @@ void ext4_error_inode(struct inode *inode, const char *function, va_list args; struct va_format vaf; struct ext4_super_block *es = EXT4_SB(inode->i_sb)->s_es; + char comm[TASK_COMM_LEN]; es->s_last_error_ino = cpu_to_le32(inode->i_ino); es->s_last_error_block = cpu_to_le64(block); @@ -438,7 +442,8 @@ void ext4_error_inode(struct inode *inode, const char *function, inode->i_sb->s_id, function, line, inode->i_ino); if (block) printk(KERN_CONT "block %llu: ", block); - printk(KERN_CONT "comm %s: %pV\n", current->comm, &vaf); + get_task_comm(comm, current); + printk(KERN_CONT "comm %s: %pV\n", comm, &vaf); va_end(args); ext4_handle_error(inode->i_sb); @@ -453,6 +458,7 @@ void ext4_error_file(struct file *file, const char *function, struct ext4_super_block *es; struct inode *inode = file->f_dentry->d_inode; char pathname[80], *path; + char comm[TASK_COMM_LEN]; es = EXT4_SB(inode->i_sb)->s_es; es->s_last_error_ino = cpu_to_le32(inode->i_ino); @@ -468,7 +474,8 @@ void ext4_error_file(struct file *file, const char *function, va_start(args, fmt); vaf.fmt = fmt; vaf.va = &args; - printk(KERN_CONT "comm %s: path %s: %pV\n", current->comm, path, &vaf); + get_task_comm(comm, current); + printk(KERN_CONT "comm %s: path %s: %pV\n", comm, path, &vaf); va_end(args); ext4_handle_error(inode->i_sb);