From patchwork Tue Apr 17 07:05:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chengguang Xu X-Patchwork-Id: 10344431 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A775460365 for ; Tue, 17 Apr 2018 07:06:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99A5E289C5 for ; Tue, 17 Apr 2018 07:06:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8D219289DF; Tue, 17 Apr 2018 07:06:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2FE0D289C5 for ; Tue, 17 Apr 2018 07:06:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751345AbeDQHGV (ORCPT ); Tue, 17 Apr 2018 03:06:21 -0400 Received: from mout.gmx.net ([212.227.15.19]:39877 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751183AbeDQHGT (ORCPT ); Tue, 17 Apr 2018 03:06:19 -0400 Received: from localhost.localdomain ([122.225.81.134]) by mail.gmx.com (mrgmx002 [212.227.17.184]) with ESMTPSA (Nemesis) id 0Lmr1w-1eVfPf0UH6-00h74u; Tue, 17 Apr 2018 09:06:08 +0200 From: Chengguang Xu To: linux-fsdevel@vger.kernel.org Cc: dhowells@redhat.com, kstewart@linuxfoundation.org, gregkh@linuxfoundation.org, tglx@linutronix.de, pombredanne@nexb.com, linux-kernel@vger.kernel.org, Chengguang Xu Subject: [PATCH 2/2] hfsplus: fix potential refcnt problem of nls module Date: Tue, 17 Apr 2018 15:05:33 +0800 Message-Id: <1523948733-8537-2-git-send-email-cgxu519@gmx.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523948733-8537-1-git-send-email-cgxu519@gmx.com> References: <1523948733-8537-1-git-send-email-cgxu519@gmx.com> X-Provags-ID: V03:K1:qYWhdORermWroev0TN4penUR9tZP1DnVRq5qRjNN4u/babdMUci 3KaY0ypPuRMp/ddha/2p+ca1BYcShXyeGgnMJqMNuLejQtu5TNnOQ1ZrttRuh4B/rwfgpD6 UichuSrOi+9VsGJMdPMShDv4lZOPGMnRivEEoCXd/C6H4A9YCfOp6yAgipU995DRkzWfeta GureiU8Z5q+rMR+h5Lorw== X-UI-Out-Filterresults: notjunk:1; V01:K0:onJ3H4B1/Ow=:Cd6BjvD5b+4ojWtwtG8L/7 ZO65/bDIVNQXnDG7yvkFl9o6FvElmtwuA2X2UI9wt7tnaQUbJhPCXzG3j1GtlcIIH0Sl/GV14 7u8g8nM82d2QAiFmCqYufUGVHcwxve8iYrZzf7BG2eISUZK+ebUJnwONADsjh+ei/NAv+oaRm Cto1uEoSEYkopzd+jJmXqUb7fzE3y6OkPBVCBPwnj2fbkw0uOpihJA+8GmbJVEwsjpxI+UdtE kjQB/kNDW6w+am8WnS21Se8w6ElLDDrbmo07/4mt48r/4MF6NH7KAQloLA/ZTZV2CaWPcE1fk 4VGUUqIMiIEVGPvrmIsBObx5CuEB27bSHfAoxrJprnFsn/Y7DVffG+7JhwZiHbAqzba2Dxm1m rpxfwlG3sfOmp4K1O2Ic33tIigAu4ptZYHES+Q3vX5clEAMTIo7VPNhnoa7YDS/teT0CZc3Jt NRnG1zMW5YB87HNfaWhIPtGZG1XeQpEcdaKhFJr9pHokhW9mpjBQcm1xAnrCL4wQdQo+VEcjd tUDblEhZy/g9F1vnAI812Dlj/n3z8tytcfPMGDh6B8VKqptckBFi+X15mSCTiQpvdEAo605uG Zrlxlqi0Alx0AgRKOUglLkO60yPF4stqaqV/nVTqju7D86lxcRJx3r0KV4DN6r3rjvi2NgT41 /OtbzBQI2zUFacjfvT1jULUvdn0x2zgVySVcxpiicv4Gs+3u5d/4myOJOcxjBh56qhs5eByup /VvYgRfeGJopXcDKqTS8FtxcHVsEXIz+kDC7fH1QVfeINkdE1Tn0sMH/dkKRNiKepNmeUBCku IcSoNrtY6rM1pQGq5a57NB9dxXpbA== Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When specifying nls option multiple times in a mount, current option parsing will cause inaccurate refcount of nls module. Hence, call unload_nls for previous one in this case. Signed-off-by: Chengguang Xu Reviewed-by: Vyacheslav Dubeyko --- fs/hfsplus/options.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c index 047e05c..068d4e2 100644 --- a/fs/hfsplus/options.c +++ b/fs/hfsplus/options.c @@ -171,8 +171,10 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi) return 0; } p = match_strdup(&args[0]); - if (p) + if (p) { + unload_nls(sbi->nls); sbi->nls = load_nls(p); + } if (!sbi->nls) { pr_err("unable to load nls mapping \"%s\"\n", p);