From nobody Wed Apr 8 03:09:23 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7F35AFA373E for ; Fri, 21 Oct 2022 16:52:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230522AbiJUQwN (ORCPT ); Fri, 21 Oct 2022 12:52:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230156AbiJUQwF (ORCPT ); Fri, 21 Oct 2022 12:52:05 -0400 Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1443628511B; Fri, 21 Oct 2022 09:52:03 -0700 (PDT) Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relayaws-01.paragon-software.com (Postfix) with ESMTPS id 01ADA2201; Fri, 21 Oct 2022 16:49:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1666370969; bh=ZCNllPC/IP07/I4v8msKmPt1Eyvxq647ljuvf/bKJqE=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=BCNrNY4SZycSHjYIYtcSk/wdH/VOM2dKBRiLSxnClHBh58xSKhUY8mrLfMAGPcYoc O/3wJJsNoD+NQehqoADpq2Q7EACnrLf0QSRZOezV/fhpuxjGMyI5NJNOGtPmm66Orh 2Bodl6Ed1N/pn5CY1UD0pYXONoaX53RcN1f1xpnw= Received: from [172.30.8.65] (172.30.8.65) by vdlg-exch-02.paragon-software.com (172.30.1.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Fri, 21 Oct 2022 19:52:01 +0300 Message-ID: <21a9d399-f3bf-6e57-0f38-cdbf68fdad58@paragon-software.com> Date: Fri, 21 Oct 2022 19:52:01 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: [PATCH 2/4] fs/ntfs3: Fix sparse problems Content-Language: en-US From: Konstantin Komarov To: CC: , References: <9a7d08c2-e503-ac1d-1621-20369c073530@paragon-software.com> In-Reply-To: <9a7d08c2-e503-ac1d-1621-20369c073530@paragon-software.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [172.30.8.65] X-ClientProxiedBy: vdlg-exch-02.paragon-software.com (172.30.1.105) To vdlg-exch-02.paragon-software.com (172.30.1.105) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8"; format="flowed" Fixing various problems, detected by sparse. Signed-off-by: Konstantin Komarov --- fs/ntfs3/attrib.c | 7 ++++--- fs/ntfs3/dir.c | 4 ++-- fs/ntfs3/frecord.c | 3 +-- fs/ntfs3/namei.c | 13 ++++++------- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c index 63169529b52c..b2f54fab4001 100644 --- a/fs/ntfs3/attrib.c +++ b/fs/ntfs3/attrib.c @@ -2308,7 +2308,8 @@ int attr_insert_range(struct ntfs_inode *ni, u64 vbo,= u64 bytes) =20 if (!attr_b->non_res) { /* Still resident. */ - char *data =3D Add2Ptr(attr_b, attr_b->res.data_off); + char *data =3D Add2Ptr(attr_b, + le16_to_cpu(attr_b->res.data_off)); =20 memmove(data + bytes, data, bytes); memset(data, 0, bytes); @@ -2400,8 +2401,8 @@ int attr_insert_range(struct ntfs_inode *ni, u64 vbo,= u64 bytes) if (vbo <=3D ni->i_valid) ni->i_valid +=3D bytes; =20 - attr_b->nres.data_size =3D le64_to_cpu(data_size + bytes); - attr_b->nres.alloc_size =3D le64_to_cpu(alloc_size + bytes); + attr_b->nres.data_size =3D cpu_to_le64(data_size + bytes); + attr_b->nres.alloc_size =3D cpu_to_le64(alloc_size + bytes); =20 /* ni->valid may be not equal valid_size (temporary). */ if (ni->i_valid > data_size + bytes) diff --git a/fs/ntfs3/dir.c b/fs/ntfs3/dir.c index fb438d604040..063a6654199b 100644 --- a/fs/ntfs3/dir.c +++ b/fs/ntfs3/dir.c @@ -26,8 +26,8 @@ int ntfs_utf16_to_nls(struct ntfs_sb_info *sbi, const __l= e16 *name, u32 len, =20 if (!nls) { /* UTF-16 -> UTF-8 */ - ret =3D utf16s_to_utf8s(name, len, UTF16_LITTLE_ENDIAN, buf, - buf_len); + ret =3D utf16s_to_utf8s((wchar_t *)name, len, UTF16_LITTLE_ENDIAN, + buf, buf_len); buf[ret] =3D '\0'; return ret; } diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c index 8a741706c7a5..a7aed31e7c93 100644 --- a/fs/ntfs3/frecord.c +++ b/fs/ntfs3/frecord.c @@ -1670,8 +1670,7 @@ struct ATTR_FILE_NAME *ni_fname_name(struct ntfs_inod= e *ni, goto next; =20 fns =3D (struct le_str *)&fname->name_len; - if (ntfs_cmp_names(uni->name, uni->len, fns->name, fns->len, NULL, - false)) + if (ntfs_cmp_names_cpu(uni, fns, NULL, false)) goto next; =20 return fname; diff --git a/fs/ntfs3/namei.c b/fs/ntfs3/namei.c index 315763eb05ff..ff76389475ad 100644 --- a/fs/ntfs3/namei.c +++ b/fs/ntfs3/namei.c @@ -427,7 +427,8 @@ static int ntfs_d_compare(const struct dentry *dentry, = unsigned int len1, unsigned int len2 =3D name->len; unsigned int lm =3D min(len1, len2); unsigned char c1, c2; - struct cpu_str *uni1, *uni2; + struct cpu_str *uni1; + struct le_str *uni2; =20 /* First try fast implementation. */ for (;;) { @@ -468,8 +469,9 @@ static int ntfs_d_compare(const struct dentry *dentry, = unsigned int len1, =20 uni2 =3D Add2Ptr(uni1, 2048); =20 - ret =3D ntfs_nls_to_utf16(sbi, name->name, name->len, uni2, NTFS_NAME_LEN, - UTF16_HOST_ENDIAN); + ret =3D ntfs_nls_to_utf16(sbi, name->name, name->len, + (struct cpu_str *)uni2, NTFS_NAME_LEN, + UTF16_LITTLE_ENDIAN); if (ret < 0) goto out; =20 @@ -478,10 +480,7 @@ static int ntfs_d_compare(const struct dentry *dentry,= unsigned int len1, goto out; } =20 - ret =3D !ntfs_cmp_names(uni1->name, uni1->len, uni2->name, uni2->len, - sbi->upcase, false) - ? 0 - : 1; + ret =3D !ntfs_cmp_names_cpu(uni1, uni2, sbi->upcase, false) ? 0 : 1; =20 out: __putname(uni1); --=20 2.37.0