From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751566AbdHSHSx (ORCPT ); Sat, 19 Aug 2017 03:18:53 -0400 Received: from mout.web.de ([212.227.15.3]:56536 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750854AbdHSHSv (ORCPT ); Sat, 19 Aug 2017 03:18:51 -0400 Subject: [PATCH 3/4] isofs: One check less in isofs_read_inode() after error detection From: SF Markus Elfring To: Al Viro , David Howells , Ingo Molnar , Jan Kara , kernel-janitors@vger.kernel.org Cc: LKML References: Message-ID: <157aa252-0edb-1462-cb6e-44369e8f1645@users.sourceforge.net> Date: Sat, 19 Aug 2017 09:18:42 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:13fXpiFo7uv+wKvvzzFymUO8oUfkG4xjiaPi9R+qg+5uX+PPwRA BRdcEwj5cB4U4M13loRLMHwXonuZ6X7A95i7r3T7CuLw3YYYWFjZ5X6u6Vsyp/5jME+HDpy V+RT1Ltm4DGaQJAqZ+8em3I2ERCeZh3RXs4w7SrZYZMnittce/q9m827L2+O7YELMHM5xt+ +vPqQ7BVVzCSPDdkLQTTg== X-UI-Out-Filterresults: notjunk:1;V01:K0:oU3bpfYUHok=:PT03fuwRvhGMlvmVyhQ/QH va06AJIYKQrPkyhVFt4pyFId8nbDUgbUbho43a+c/SpiW6nHREb3flhorHpEALRVlvJN3y3Pt AM59dS7jer/8xdwDesE8/Tu1gRzaYwe7CAsuucGaI/yzyc6R7hEWc3nBOnd+jGfXvqBWFCr4R 3xBSt/C7xBfoQqKoNArnyJrb4BcmhxCDPVmqsv7bqi2iO7EIfeVwUk7fJDrpz2kDv9gH6mrLa qQFZCn64RW9G8bNjD1bJMQ3z2ZeRfqhzperCr28Tth667tvMnuewwpcLcsnzhBtRSrhx3VBWZ +YZkp9yoHyMbI2UnzMRjHo3KNG0QfZCh7UUsQRQxOaCLt4OA9imNQ+k0jxZPKeioBbj0M19sf 6huXIjyLhPuHAadK5K6JAcC/DE7g84DmmkMP6SbC9gIlwR73F0smjhlElS+3paB2b5vWRQySN Kn1ouopbHKAdjkRJuH9T5HI1swtSrnXzn6QpvB26PizCzlXsNtpBFWG1pqqT52IUgCtJG4MDg L7krhn3ECwXB/cRwlDeb42hY+vkGIvI8VBJ+DsUPTMu9Qr0vA2z1EanVlWv66sHfDkYdFtLst E1NoTqoFY9QHa9MFkDDH0dVijsu86O86BfukiGsWFNBIkahspdXyJ7/WgAwA1wv291OILkcdv ep1liwyMUi3klNfXrWui5KC5k8zV35NlyTy0HxYmMR3Kn7fe4En4jXWWBFWTa4i0wKGrA9G4O j0u5I3wVhPC5o/1VtzXdmD+6DErvoJmRKF0EUYeLT1IZavKtCbYpKHfjU6O+dr4UTe04v8hIg dUNrekL9KfLsjpBpQBQ7oiTO0yx1pEWj5yqOZ+3B93ttipWhLU= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Sat, 19 Aug 2017 08:10:40 +0200 * Adjust jump targets. * Avoid a repeated check for the local variable "bh" after a memory allocation failure in this function. * Delete an initialisation for the local variable "ret" which became unnecessary with this refactoring. Signed-off-by: Markus Elfring --- fs/isofs/inode.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index db43f52f2268..f6d6c2ca8723 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c @@ -1304,7 +1304,7 @@ static int isofs_read_inode(struct inode *inode, int relocated) unsigned int de_len; unsigned long offset; struct iso_inode_info *ei = ISOFS_I(inode); - int ret = -EIO; + int ret; block = ei->i_iget5_block; bh = sb_bread(inode->i_sb, block); @@ -1322,7 +1322,7 @@ static int isofs_read_inode(struct inode *inode, int relocated) tmpde = kmalloc(de_len, GFP_KERNEL); if (!tmpde) { ret = -ENOMEM; - goto fail; + goto release_bh; } memcpy(tmpde, bh->b_data + offset, frag1); brelse(bh); @@ -1377,7 +1377,7 @@ static int isofs_read_inode(struct inode *inode, int relocated) if (de->flags[-high_sierra] & 0x80) { ret = isofs_read_level3_size(inode); if (ret < 0) - goto fail; + goto free_tmp; ret = -EIO; } else { ei->i_next_section_block = 0; @@ -1475,16 +1475,17 @@ static int isofs_read_inode(struct inode *inode, int relocated) init_special_inode(inode, inode->i_mode, inode->i_rdev); ret = 0; -out: +free_tmp: kfree(tmpde); if (bh) +release_bh: brelse(bh); return ret; out_badread: printk(KERN_WARNING "ISOFS: unable to read i-node block\n"); -fail: - goto out; + ret = -EIO; + goto free_tmp; } struct isofs_iget5_callback_data { -- 2.14.0