Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2386270ybt; Fri, 3 Jul 2020 07:52:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsARAyjCsbKd9PlD0ylGyAfyDAZHIiXHJXTQ1L+wn8UMtg8mNBSbegy+TvsjdjMHf+pl/E X-Received: by 2002:a17:906:d9c4:: with SMTP id qk4mr34465931ejb.100.1593787927978; Fri, 03 Jul 2020 07:52:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593787927; cv=none; d=google.com; s=arc-20160816; b=mS/CixN/i2OcW/m4PFwm7CJh1uaRRVvdR3/iBWl/N0LAsLDbHn/ernsRL91suNdvcT SWJQrOXjiePpyalble+EVJ+dO3/1OwMPadX/qGsn9I9/8Y1O/NG+zvkhBEaED1FmszM0 Ji3xtPtz2xuESvOOHqhN3UkAaEu3m71ad/T/3w4cvUFxkRXHqDoFCBclKT99Z4E/AI8c mIHzVDUEaytN/C8XsTGRoPrgfn68/A5VtAGbrTy7SzfW6WPjJaakmr6/ZYC9Uxo6Pp6+ sQskqvkwq7MvrVTxQBl/JvjULVvG/n+r6H0KD7GH3TXn0lCuhMDUFjbhFU3F4UrpqeNg Sa5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type :content-transfer-encoding:date:message-id:in-reply-to:cc:to:from :reply-to:subject:mime-version:dkim-signature:dkim-filter; bh=bsE6QLvTDojRwXialKZVHCrDPPKOpbZsYkXHSf/L++M=; b=tIMCTS8GXuAeaTT4Q86F2tKQm6ZE9l7NqiyAC7os3PPYoY2xkYT/coryq3bt/QNv7A nwod8SPoxioWLoB15ooFmerNDTJQnqODoVuI26g1m3+g7Ry4vrGNdvfqyVDV0jU4hrw5 0rPbI93qb2H3MbVj1NUQ+y2unjETCsX36Or0HBU/zbzaGZgucAtLnqqzYVtETIR+gIzT r6n9kKUBwTjnrtmx0yaNk46WJ/6RggL4u2oxszHaHQxl864fllzNXr52H6aWub8g0y+w MqXw4yrkp2heuMJNFPnBRosxQneY5CPzSBVt/xxGI1GyjdM1JF3kkqsq2fEBPuBO9oIl Ocmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=tcpAFjwE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e1si8264141ejb.286.2020.07.03.07.51.44; Fri, 03 Jul 2020 07:52:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=tcpAFjwE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726581AbgGCOt3 (ORCPT + 99 others); Fri, 3 Jul 2020 10:49:29 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:36872 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726053AbgGCOt2 (ORCPT ); Fri, 3 Jul 2020 10:49:28 -0400 Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20200703144924epoutp0385e2de1a9a35960ae4f7b2396351e230~eRYcSm86y1072310723epoutp03B for ; Fri, 3 Jul 2020 14:49:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20200703144924epoutp0385e2de1a9a35960ae4f7b2396351e230~eRYcSm86y1072310723epoutp03B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593787764; bh=bsE6QLvTDojRwXialKZVHCrDPPKOpbZsYkXHSf/L++M=; h=Subject:Reply-To:From:To:CC:In-Reply-To:Date:References:From; b=tcpAFjwEuU8UUZY+NN5rAS9/FcxDddOvA0ETQkXisUW87JY4CdBLMeNNLAvb0h9un kbq2mhEwQLgOPqLwjB+64vLz19uvNSkJKZ7ecPEjKwLiCzMpufv297abZcQorAKCgO UjW4Rgpztrkicjptdr4PR45nadPmrGnrl+dQxA2M= Received: from epsmges5p1new.samsung.com (unknown [182.195.42.73]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20200703144923epcas5p3e3660f508f10bcb6e2c11cbc776205bb~eRYbospYP1094310943epcas5p3g; Fri, 3 Jul 2020 14:49:23 +0000 (GMT) X-AuditID: b6c32a49-a29ff700000024fb-8f-5eff4573fac8 Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 0A.F0.09467.3754FFE5; Fri, 3 Jul 2020 23:49:23 +0900 (KST) Mime-Version: 1.0 Subject: RE: [PATCH] fs: fat: add check for dir size in fat_calc_dir_size Reply-To: anupam.al@samsung.com From: Anupam Aggarwal To: OGAWA Hirofumi , AMIT SAHRAWAT CC: "linux-kernel@vger.kernel.org" X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: <20200630170748epcms5p87fa9b4348c1448d2d5a5f6cdddbc021e@epcms5p8> X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <20200703142939epcms5p1440ec65f7e8a3e4741ade2496135d747@epcms5p1> Date: Fri, 03 Jul 2020 19:59:39 +0530 X-CMS-MailID: 20200703142939epcms5p1440ec65f7e8a3e4741ade2496135d747 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRmVeSWpSXmKPExsWy7bCmlm6x6/84g/8LjCwu7k61mD53A4vF 5V1z2ByYPe6/TfTo27KK0ePzJrkA5igum5TUnMyy1CJ9uwSujBmnlzIVXFGrmLb4PXsD43eV LkZODgkBE4nfj8+ydTFycQgJ7GaUONL5B8jh4OAVEJT4u0MYpEZYwFPi36l9LCC2kIC8xPcF n5gh4voSC073sIHYbAK6EnNfzGYFaRURiJL4/husnFnAUeL23rdMEKt4JWa0P2WBsKUlti/f yghicwr4SRyYNB+qRlTi5uq37DD2+2PzGSFsEYnWe2eZIWxBiQc/d0PFZSROrFvDCHK+hEA/ o8Szj61MEM4MRomrax5DbTOX2L1hHpjNK+ArMe/EZLBuFgFViZXbpoMdLSHgItGzrxbiaG2J ZQtfM4OEmQU0Jdbv0oeYIisx9dQ6JogSPone30/g/toxD8ZWlph67TUrhC0p8bizFepmD4nJ m6eyQ4L5PpPE9elPWScwKsxChPQsJJtnIWxewMi8ilEytaA4Nz212LTAMC+1XK84Mbe4NC9d Lzk/dxMjOE1oee5gvPvgg94hRiYOxkOMEhzMSiK8Car/4oR4UxIrq1KL8uOLSnNSiw8xSnOw KInzKv04EyckkJ5YkpqdmlqQWgSTZeLglGpgUur60NI8ZS7LHSeVh5cOb/mfW69jVaIom9lo 3Gx9O/Poy8ktauIVsxlX3a1ebF2cwKZzUjHC5dQxtgP/3v31Ug2Zsb6ra7Vy5odtTDGMtx1L tQSOvt7JHbtiyvm/6xc6bpyuerH7Nev9JBdm7ydv4x26XpXJXAx33J25Sm63/tWU7KtXaiwf bLAS6Xdfu3OnV4w/wzP++IrHQm4/7PTWqrzdE9JZExHYrOeSYfcgTXfrX+5tJw6ET9O+fHjR 0SSPyIX57++vnvhf7Fe3WtCjY4rags6n+HRUYlf7er59ah0aWpqx4df7iCUO7OvnXva9x3Bc /uym/YZi82w826VLVXIXr32se3v5/KJbf45sVGIpzkg01GIuKk4EAEqZ95aCAwAA X-CMS-RootMailID: 20200629110320epcas5p34ccccc7c293f077b34b350935c328215 References: <20200630170748epcms5p87fa9b4348c1448d2d5a5f6cdddbc021e@epcms5p8> <875zb8o6zh.fsf@mail.parknet.co.jp> <87ftacolpf.fsf@mail.parknet.co.jp> <1593428559-13920-1-git-send-email-anupam.al@samsung.com> <20200630123355epcms5p602efe0e4ceedcfe11eae2153c8466678@epcms5p6> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ogawa, >So what was the root cause of slowness on big directory? Problem happened on FAT32 formatted 32GB USB 3.0 pendrive, which has 20GB o= f data, cluster size is 16KB It has one corrupted directory whose size calculated by fat_calc_dir_size()= is 1146896384 bytes i.e. 1.06 GB. When directory traversal of corrupted directory starts, directory entries l= ooks to be corrupted and lookup fails for these directory entries. Some directory entries name are having format abc/xyz, following are the few observed directory entry names: eqk/hb* *=C3=B9=C3=AF/=C3=B2=C2=A27=C3=B4.=C3=BAB=C3=A6=0D=0Aty7=40o/<=60=0D=0A-=C3= =B2%/=C3=A73=7B.9q=0D=0A'=C3=BBu/=C3=B6y<=C3=B6.=5Em=C3=B6=0D=0APh=E2=95=A4= Cf=E2=94=8C6g.=C3=9F/k=0D=0A=0D=0ANow=20when=20path=20lookup=20happens=20fo= r=20above=20directory=20entries,=20it=20will=20search=20for=20name=20before= =20=E2=80=98/=E2=80=99=20in=20corrupted=20directory=20e.g.=0D=0A=0D=0Aeqk= =0D=0A*=C3=B9=C3=AF=0D=0Aty7=40o=0D=0A-=C3=B2%=0D=0A'=C3=BBu=0D=0APh=E2=95= =A4Cf=E2=94=8C6g.=C3=9F=0D=0A=0D=0AThere=20are=20also=20directory=20entries= =20with=20garbage=20name=20for=20which=20lookup=20fails,=20e.g.=0D=0A=C3=A1= )Y=C2=BA&q=C2=BC(.=C3=AE=C2=BB.=0D=0A=C3=86=E2=88=9E=E2=94=B4=C3=87=E2=96= =80=E2=95=9Cr=E2=95=9F.=E2=95=A3g=C2=BD=0D=0A4=E2=96=92h1=E2=96=93x0=E2=94= =A4.p3=E2=95=A3=0D=0A=0D=0ADuring=20search=20for=20single=20name=20in=20fat= _search_long()=20function,=20whole=20corrupted=20directory=20of=20size=201.= 06GB=20is=20traversed,=0D=0Awhich=20takes=20around=20230=20to=20240=20secs,= =20which=20finally=20ends=20up=20with=20returning=20ENOENT.=0D=0A=0D=0ANow= =20multiple=20lookups=20in=20corrupted=20directory=20makes=20=E2=80=9Cls=20= -lR=E2=80=9D=20never-ending=20e.g.=20in=20overnite=20test=20of=20running=20= =E2=80=9Cls=20=E2=80=93lR=E2=80=9D=0D=0Aon=20USB=20having=20corrupted=20dir= ectory,=20around=20200=20such=20lookups=20in=20corrupted=20directory=20took= =2014hrs=20and=20still=20=E2=80=9Dls=20=E2=80=93lR=E2=80=9D=20is=20running.= =0D=0A=0D=0ATotal=20number=20of=20directory=20entries=20in=20corrupted=20di= rectory=20of=20size=201146896384=20bytes=20=3D=201146896384/32=20=3D=203584= 0512,=0D=0Aso=20lookup=20for=2035840512=20looks=20very=20exhaustive,=20ther= efore=20we=20have=20put=20size=20check=20of=20directory=20in=20fat_calc_dir= _size()=0D=0Aand=20prevented=20the=20directory=20traversal=20by=20returning= =20-EIO.=0D=0A=0D=0AWhile=20browsing=20corrupted=20directory(=5CCorruptedDI= R)=20on=20Windows=2010=20PC,=0D=0A2623=20directory=20entries=20were=20liste= d=20and=20timestamps=20were=20wrong=0D=0A=0D=0AFollowing=20is=20the=20reado= nly=20chkdsk=20output=20of=20USB.=0D=0A=0D=0A------------------------------= --------------------------------------------------------=0D=0Achkdsk=20I:= =0D=0AThe=20type=20of=20the=20file=20system=20is=20FAT32.=0D=0AVolume=20AAA= =20created=2012/28/2018=203:15=20PM=0D=0AVolume=20Serial=20Number=20is=2016= 06-72DC=0D=0AWindows=20is=20verifying=20files=20and=20folders...=0D=0AWindo= ws=20found=20errors=20on=20the=20disk,=20but=20will=20not=20fix=20them=0D= =0Abecause=20disk=20checking=20was=20run=20without=20the=20/F=20(fix)=20par= ameter.=0D=0AThe=20=5C=24TXRAJNL.DAT=20entry=20contains=20a=20nonvalid=20li= nk.=0D=0AThe=20size=20of=20the=20=5C=24TXRAJNL.DAT=20entry=20is=20not=20val= id.=0D=0AUnrecoverable=20error=20in=20folder=20=5CCorruptedDIR.=0D=0AConver= t=20folder=20to=20file=20(Y/N)?=20n=0D=0AThe=20=5CBBB=5Cfile1.txt=20entry= =20contains=20a=20nonvalid=20link.=0D=0AThe=20size=20of=20the=20=5CBBB=5Cfi= le1.txt=20entry=20is=20not=20valid.=0D=0AThe=20=5CCCC=5Cfile1.txt=20entry= =20contains=20a=20nonvalid=20link.=0D=0AThe=20size=20of=20the=20=5CCCC=5Cfi= le1.txt=20entry=20is=20not=20valid.=0D=0AFile=20and=20folder=20verification= =20is=20complete.=0D=0AConvert=20lost=20chains=20to=20files=20(Y/N)?=20n=0D= =0A3531520=20KB=20of=20free=20disk=20space=20would=20be=20added.=0D=0A=0D= =0AWindows=20has=20checked=20the=20file=20system=20and=20found=20problems.= =0D=0ARun=20CHKDSK=20with=20the=20/F=20(fix)=20option=20to=20correct=20thes= e.=0D=0A=20=20=2030,015,472=20KB=20total=20disk=20space.=0D=0A=20=20=20=20= =20=20=20=20=20=20400=20KB=20in=202=20hidden=20files.=0D=0A=20=20=20=20=20= =20=20=202,800=20KB=20in=2048=20folders.=0D=0A=20=20=2016,479,312=20KB=20in= =207,583=20files.=0D=0A=20=20=20=209,999,392=20KB=20are=20available.=0D=0A= =0D=0A=20=20=20=20=20=20=2016,384=20bytes=20in=20each=20allocation=20unit.= =0D=0A=20=20=20=201,875,967=20total=20allocation=20units=20on=20disk.=0D=0A= =20=20=20=20=20=20624,962=20allocation=20units=20available=20on=20disk.=0D= =0A------------------------------------------------------------------------= --------------=0D=0A=0D=0APlease=20let=20us=20know=20for=20any=20queries,= =0D=0Aand=20please=20suggest=20if=20something=20better=20can=20be=20done.= =0D=0A=0D=0ARegards,=0D=0AAnupam=0D=0A