From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932175AbbCIKTJ (ORCPT ); Mon, 9 Mar 2015 06:19:09 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:25605 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932129AbbCIKTF (ORCPT ); Mon, 9 Mar 2015 06:19:05 -0400 X-AuditID: cbfee61a-f79c06d000004e71-cf-54fd73987c5e From: Chao Yu To: Jaegeuk Kim , Changman Lee Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH] f2fs: fix reference leaks in f2fs_acl_create Date: Mon, 09 Mar 2015 18:18:19 +0800 Message-id: <000901d05a52$77f298b0$67d7ca10$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AdBaUIX/CCfbVKfpSBiJ2W7BOX9pvg== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMLMWRmVeSWpSXmKPExsVy+t9jAd0ZxX9DDKZcELa4tq+RyeLJ+lnM FpcWuVtc3jWHzYHFY9OqTjaP3Qs+M3n0bVnF6PF5k1wASxSXTUpqTmZZapG+XQJXxrT7l9kK FnNV7J/5lbWBcT5HFyMnh4SAicSyPUtZIGwxiQv31rN1MXJxCAksYpQ4seMCI4Tzg1Fi9/pp YFVsAioSyzv+M4HYIgJeEpP2nwCLMwt4SDR2fGcFsYUFbCXWXO0Ei7MIqEpMmtvEDGLzClhK TJ12hB3CFpT4MfkeVK+WxPqdx5kgbHmJzWveMkNcpCCx4+xrRohdehI7Gj+xQdSIS2w8cotl AqPALCSjZiEZNQvJqFlIWhYwsqxiFE0tSC4oTkrPNdQrTswtLs1L10vOz93ECA7qZ1I7GFc2 WBxiFOBgVOLh3XHiT4gQa2JZcWXuIUYJDmYlEV63jL8hQrwpiZVVqUX58UWlOanFhxilOViU xHmV7NtChATSE0tSs1NTC1KLYLJMHJxSDYxW0W+v1E735DvOwBHEkXV1SW/xbP9GrZBaPcFj xlqnt8z/U2G4QsLQp+dV5m/vBPcmg7PcZfPmHLTmFkqMnTnNx6un5MbLfzvTn7ceVy6rXpnB 0dXbe+GaMXM6O9OOh3vY49LXbzyuunyJQmPd0r7IJHOZuSJ2j2+p9NU2/FMvdHLc43pjshJL cUaioRZzUXEiAB86gJpmAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Our f2fs_acl_create is copied and modified from posix_acl_create to avoid deadlock bug when inline_dentry feature is enabled. Now, we got reference leaks in posix_acl_create, and this has been fixed in commit fed0b588be2f ("posix_acl: fix reference leaks in posix_acl_create") by Omar Sandoval. https://lkml.org/lkml/2015/2/9/5 Let's fix this issue in f2fs_acl_create too. Signed-off-by: Chao Yu --- fs/f2fs/acl.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/acl.c b/fs/f2fs/acl.c index 7422027..4320ffa 100644 --- a/fs/f2fs/acl.c +++ b/fs/f2fs/acl.c @@ -351,13 +351,11 @@ static int f2fs_acl_create(struct inode *dir, umode_t *mode, *acl = f2fs_acl_clone(p, GFP_NOFS); if (!*acl) - return -ENOMEM; + goto no_mem; ret = f2fs_acl_create_masq(*acl, mode); - if (ret < 0) { - posix_acl_release(*acl); - return -ENOMEM; - } + if (ret < 0) + goto no_mem_clone; if (ret == 0) { posix_acl_release(*acl); @@ -378,6 +376,12 @@ no_acl: *default_acl = NULL; *acl = NULL; return 0; + +no_mem_clone: + posix_acl_release(*acl); +no_mem: + posix_acl_release(p); + return -ENOMEM; } int f2fs_init_acl(struct inode *inode, struct inode *dir, struct page *ipage, -- 2.3.0