From patchwork Mon Jan 26 22:38:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 5712771 Return-Path: X-Original-To: patchwork-ocfs2-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 21717C058D for ; Mon, 26 Jan 2015 22:39:00 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5C14220149 for ; Mon, 26 Jan 2015 22:38:59 +0000 (UTC) Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 55F8C2011E for ; Mon, 26 Jan 2015 22:38:58 +0000 (UTC) Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t0QMchhY028322 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 26 Jan 2015 22:38:45 GMT Received: from oss.oracle.com (oss-old-reserved.oracle.com [137.254.22.2]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id t0QMceOT017474 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 26 Jan 2015 22:38:41 GMT Received: from localhost ([127.0.0.1] helo=lb-oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1YFsIq-0005qn-Hx; Mon, 26 Jan 2015 14:38:40 -0800 Received: from acsinet22.oracle.com ([141.146.126.238]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1YFsIT-0005qC-K5 for ocfs2-devel@oss.oracle.com; Mon, 26 Jan 2015 14:38:18 -0800 Received: from aserp1030.oracle.com (aserp1030.oracle.com [141.146.126.68]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id t0QMcGHX022572 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 26 Jan 2015 22:38:16 GMT Received: from userp2030.oracle.com (userp2030.oracle.com [156.151.31.89]) by aserp1030.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t0QMcFKJ026693 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Mon, 26 Jan 2015 22:38:16 GMT Received: from pps.filterd (userp2030.oracle.com [127.0.0.1]) by userp2030.oracle.com (8.14.7/8.14.7) with SMTP id t0QMbS6j043390 for ; Mon, 26 Jan 2015 22:38:15 GMT Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) by userp2030.oracle.com with ESMTP id 1s5u3nbtdh-1 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 26 Jan 2015 22:38:15 +0000 Received: from akpm3.mtv.corp.google.com (unknown [216.239.45.67]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 17D20710; Mon, 26 Jan 2015 22:38:14 +0000 (UTC) Date: Mon, 26 Jan 2015 14:38:13 -0800 From: Andrew Morton To: Joseph Qi Message-Id: <20150126143813.35453f9f3091e038c57a1f94@linux-foundation.org> In-Reply-To: <54C5B28F.8030704@huawei.com> References: <54C5B28F.8030704@huawei.com> X-Mailer: Sylpheed 3.4.1 (GTK+ 2.24.23; x86_64-pc-linux-gnu) Mime-Version: 1.0 X-ServerName: mail.linuxfoundation.org X-Proofpoint-Virus-Version: vendor=nai engine=5600 definitions=7693 signatures=670622 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=2 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1501260213 Cc: Mark Fasheh , Johannes Weiner , "ocfs2-devel@oss.oracle.com" Subject: Re: [Ocfs2-devel] [PATCH v2] ocfs2: fix warning 'ocfs2_orphan_del' uses dynamic stack allocation X-BeenThere: ocfs2-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: ocfs2-devel-bounces@oss.oracle.com Errors-To: ocfs2-devel-bounces@oss.oracle.com X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Mon, 26 Jan 2015 11:20:47 +0800 Joseph Qi wrote: > In ocfs2_orphan_del it uses dynamic stack allocation for orphan entry > name. Fix it by using dynamic heap allocation. > > ... > > --- a/fs/ocfs2/namei.c > +++ b/fs/ocfs2/namei.c > @@ -2298,18 +2298,22 @@ int ocfs2_orphan_del(struct ocfs2_super *osb, > { > int namelen = dio ? OCFS2_DIO_ORPHAN_PREFIX_LEN + OCFS2_ORPHAN_NAMELEN : > OCFS2_ORPHAN_NAMELEN; > - char name[namelen + 1]; > + char *name; > struct ocfs2_dinode *orphan_fe; > int status = 0; > struct ocfs2_dir_lookup_result lookup = { NULL, }; > > + name = kmalloc(namelen + 1, GFP_NOFS); > + if (!name) > + goto leave; > + > if (dio) { > status = snprintf(name, OCFS2_DIO_ORPHAN_PREFIX_LEN + 1, "%s", > OCFS2_DIO_ORPHAN_PREFIX); > if (status != OCFS2_DIO_ORPHAN_PREFIX_LEN) { > status = -EINVAL; > mlog_errno(status); > - return status; > + goto leave; > } > > status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, > @@ -2357,6 +2361,7 @@ int ocfs2_orphan_del(struct ocfs2_super *osb, > ocfs2_journal_dirty(handle, orphan_dir_bh); > > leave: > + kfree(name); > ocfs2_free_dir_lookup_result(&lookup); > > if (status) I think I prefer my fix: It means we use 20 bytes of stack all the time, instead of sometimes-20, sometimes-16. --- a/fs/ocfs2/namei.c~ocfs2-add-functions-to-add-and-remove-inode-in-orphan-dir-fix +++ a/fs/ocfs2/namei.c @@ -2296,8 +2296,7 @@ int ocfs2_orphan_del(struct ocfs2_super struct buffer_head *orphan_dir_bh, bool dio) { - int namelen = dio ? OCFS2_DIO_ORPHAN_PREFIX_LEN + OCFS2_ORPHAN_NAMELEN : - OCFS2_ORPHAN_NAMELEN; + const int namelen = OCFS2_DIO_ORPHAN_PREFIX_LEN + OCFS2_ORPHAN_NAMELEN; char name[namelen + 1]; struct ocfs2_dinode *orphan_fe; int status = 0;