From patchwork Thu Jun 14 07:33:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artem Blagodarenko X-Patchwork-Id: 929273 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hPdBj3qL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 415wQZ1MCjz9ryk for ; Thu, 14 Jun 2018 17:35:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752767AbeFNHfs (ORCPT ); Thu, 14 Jun 2018 03:35:48 -0400 Received: from mail-lf0-f45.google.com ([209.85.215.45]:43244 "EHLO mail-lf0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752748AbeFNHfm (ORCPT ); Thu, 14 Jun 2018 03:35:42 -0400 Received: by mail-lf0-f45.google.com with SMTP id n15-v6so7811090lfn.10 for ; Thu, 14 Jun 2018 00:35:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=6i53nsEL0C90gadDMgvyChOjQf/nflbsHjljKl3ar+I=; b=hPdBj3qLDuNAi4lSR82wrJKO85ZU03P2Bo8uZ5ANFCmFeK4s9O9YtsB4pgd3JTzro8 3LR9gixIaUkNKCkzpZfD73XnFF6wKnRQkMda78/NK+mzkzSYaVhEb/ycB+k7JcFI9I8G uunr/eWbc8ah/MgkqyZeuEzPpJDjBBDVFZQBrHbmXy1S1yuQWQjt8TTtpvond2fl1pEJ etv8XRZdEYKoQaibTOWhJ53yzBqXvUgfJqJxPCg+UPN9Izm5aGEb/VjvawbBT9rMWnWp UOVg3ga6Zpb1ol909Bp9qwvcVkAPErRxQ0qBZIKrq37pviqRUDkSJiAyp7K8ytnlSEUG oMiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=6i53nsEL0C90gadDMgvyChOjQf/nflbsHjljKl3ar+I=; b=Vp1O+xP8abYh/AVFpTDhSyHERCIsP52o+Pzb57otN67qngCPDjGA7iT4HuqV9DQP/b eiKrwt8Jm9kBK8yL0UC1ZjBnDI479Og97/VwNqoJJCc242E08Ckvk3dz4kcs235Bpjr7 enrk01GgCfdW8eG654zeBVoUBTwRLh6/YLyhLbBDzvyU2YEwi3KFcDINbyA14ij1xgEF 28lMH0TWxtCu1X80Sy6zd85aD9FFyJfloZldQjAzIItbiZv7INFKVK6cstQz7tQ22YaG KIYzDjCzT5DlY4SbKxBBmxUTl4MoHbYoGaJ3TDJ6NF8HXjuL5IZB//p1bzNRdfDmtFNL Xm5w== X-Gm-Message-State: APt69E0uhZzHk+bOKtu8iQpex2jFF/1m44SMqOxgMt7xHIap0wwVaRVk KrIXMe/qLPRKJvwwxs4pa5dWeHah X-Google-Smtp-Source: ADUXVKJB4I+/Ne1o9nbnecdfn8AfO84NC+/x65MAKeDBtmiy3QIU4VV7+/3YgquEXjRoC4q9yMlhVg== X-Received: by 2002:a19:1460:: with SMTP id k93-v6mr5448181lfi.23.1528961739191; Thu, 14 Jun 2018 00:35:39 -0700 (PDT) Received: from localhost.localdomain ([95.153.128.179]) by smtp.gmail.com with ESMTPSA id i76-v6sm955729lfk.94.2018.06.14.00.35.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Jun 2018 00:35:38 -0700 (PDT) From: Artem Blagodarenko To: linux-ext4@vger.kernel.org Cc: adilger.kernel@dilger.ca, alexey.lyashkov@gmail.com, Andreas Dilger Subject: [PATCH] e2fsck: mark device inodes with EXT4_EXTENTS_FL bad Date: Thu, 14 Jun 2018 10:33:20 +0300 Message-Id: <20180614073320.85460-1-artem.blagodarenko@gmail.com> X-Mailer: git-send-email 2.14.3 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Andreas Dilger Mark device inodes bad if they have the EXT4_EXTENTS_FL set, since this should never happen and likely shows the inode is corrupt. Change-Id: I85ab667b39ff57c658a779e59f692a080217690e Signed-off-by: Andreas Dilger --- e2fsck/pass1.c | 2 +- tests/f_extents/expect.1 | 50 ++++++++++++++++++++++++----------------------- tests/f_extents/expect.2 | 2 +- tests/f_extents/image.gz | Bin 20947 -> 20935 bytes 4 files changed, 28 insertions(+), 26 deletions(-) diff --git a/tests/f_extents/image.gz b/tests/f_extents/image.gz index 76fc2fbe23f32911005f4df1f27b0424eee71edd..caeadc43e37eb432502c4c52d000f0872a222f9d 100644 GIT binary patch delta 12835 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 OLih8-RWh;&vi}3JmA$V3 literal 20947 zcmeI2S5y>VyXMIt83joK0wN$F8I;rr5(Szdl7k>Q=S-6n5XnfCBuLIVH;9UogEUEK z1j(UE-GmM`{Lh&)bJm*6nQzT^Vck^i+V9$X*RP)a)>FHRBY})e$gB4$0ij)>ubsQE z&qF6Shlf5d{qgqmDXgE*<_sb7JC*NqMsl7`Mtvrxx<{@|hOd10_frBTMrF#W-8u?p zv0K@aqhE4v(9C^3eqHoFvG#6QoY!0x-<$b^2i;3b#_wSdB%Isa=bW1txju1ueX66m zhlThcUb!n-GAXjdtsozUg}w|6yRzw@gOB2Ga157Q-+kNG&YMq#B~17# zLo7B9S^qFjy{(%nh40laK@Tk|anrMDi|!EXsJG8gpjlnI<9nZ^C=eWAAl{?=$cG%7i1z8dvd#j(wzER^o@S1`_3vF={iNYAy1sPQre12Z-}%M zeU_HS2SAjB!hU#2Ecj`sZBO2&B6+NRck#@JKa;MH{(#>=QVuyNfd)1+_U+p6E)4ZY zTx}=I@l|4*K`kyuUh+kKHN;H|Q5{YXdlzhx$MQCh3YnMW0N;Z{TQqN^!qW;G zdU*#B`_^Al!8BzR8~l9&Xw?f?-@*&{X+*x7&sdpUJJ<80jhYjbYPox?NX= zD&qT5_tnJ4>$mlWHrb4a^@OyU*2;}OLpqJ6dS?5KZV9Hd6MnnKtJ(pJLx9`<0O!zX zycJKcKqPn@4qPKZK(1+=gA%^3p$os-9AhVJ8ZZ8d2?d&s1^WP#{}$#aRpE5iG8WIS z7$0IM($#(Te@v9Ba=S)j2Lu*;e&lJ5536%p1o!rx;C!}Dk;8KRn1cfi!eLMbctDXp zF=Rizonh#4zN}}3I;(ew8OvLbP<3vF+oH_Vc1N8y`3cgi2WRy{n*pmUKEA&oO&QLC zH)r4zV3JO2@@(=tydZ0q@1!#Wl)8B21Eb+`caU394G6B#cQ(X4%D==gpnEq$o(@Po zEN51i#iS`PY4|vXUxoL3E`!xvYYqb@kEgJV`e;8uWi_wM>fj|HWsTNSel)goQ{pZ& z)%ml*{#PFi1hzCghG;nyHtBsQZ*L!4cBs)IVxLWXsW3}G=(Wx(Ji>NJ;5%%EwsVK( zbKZfS*AJ~HdJE`x3!j%zn19@P+5LURhEY$Krc{lVB(dmF?+bI$#U{ss%AQoWBcV2U z>Gc6~H|`-4O+l2JCObup56iBmryHwS-&RApsQhUq2|2P_oeqc=g4uF-qIZp zW_dkXoizUgOf%0R3mP8Cigt$I6?w2c+bDc^Ym|e?<1RdJRp?0eh&_-4bK?$4VT5qx zr)B;(Q4|AwDL1}FyQWZ_^i$qd6wRjCjMmqst|MjWr-=%_GWDeBpsFGEvlb7emm@B~ zPh90`py^qtYc22gVNOog35b``rD1t;%aNqEh^lnFU&?$)+gE79H(o1-_?Jz`Mn47D z>cgYEfs`1c9x~H@!~h+wNc^nV=h%N%Ju$T3-AU8Z0`m%jEhQ840 zcC`^29#@C(woeV)^#3ZePW{yxcHk<(@tk5qN2&sYW;nQ?_y9I^BJ{$g;Fpt*db|7M zwXSag`2w1+y`io`L3<1?H69hx@m&<7A5Dbk9{qY8@hIU?e;&l+vHQhXjVoc)DL(i+ zBte^^-K14cp1$}CI+LM+dt#|cOZ*xd0(kz zP<#`tzVU}wt;h2#GRnzTAHR}zk9JejpVeEX<6ys1$GdbI6--jL=iX(hW4c6D+n8p8 zd7q;RTdN%nk_!5$=jbiK7Fb`oV2bk~>_Wbm3SwJVnxVM^Z6HOrK?G+gOJI@B;*E`~kW`PWb{t+lMxK&-R;;EGx-EzN7oVc2%04hMYB- z^fma*a>oU$B71E&9PD6)wr6+YGHa6&b3Tp6HO*=*sMjP^XDo-BVdG$uj)e#qy*cq_ zRM2YPYJGpGr(|MpKfyKW)D|Qu1&^EdU~2@dHk87g#=WSK`GVDxo62v1tAXh`Ua~@H z9nl#py8=r$elTgnyG_I@0uPH*lQgC#NJE8plKj%Lm8B&)%e&iZO>C^;!_|=cPl(ef zDGt8|zg=UIOI=KP1^n|Fq2uSI%#9hLzfc^ldQ8KA0 z?Nv_2TQ!JCL^MYPM^x;Ih!r^&@h%%YlYL8$kfq;$ zlB|FjL;?_m6W|!+NDInE`7fl85UZem@W4dBPD8?Ggtc^{;Q+;|%F)ev!f@(vd`l82 zQGJBbfF;XFlvSkt5lbLj558$XB+@EcdH@m)pESPRLmW=ALV}2ZPxa7Zgaa9SNW*Dx zc&O-eCoM`G8FdsWlBS>Yi1U%wsl*Z81?Wih5dluipXCTxH8^6vxD$%Mo&2JYXvi_N z8l3yen!vsY&s0#9>>j>=ItjnEh&r*8H5n7Rt2L84ssAdT&ME<81jT@Kzo!U+InhHB z?g74{s3~j84kB}Mv3_F_>Q_;Mp3EJ0-jUvlVAUczyA8Sd9Y6ia!)$`GC;`O+Eqme7 zPyN0kg!JEExzF&vdr$|?DF7C|4kW@1{VEPK-`FUnsy?Hj8EN!wL=y1C-YdbnHH3rt zyLwaBx-YMtBG)>R!SX!|+mV|BhuLl3>+J0r_F@tli=syXHB#Y44dV~;5eOjnjg$M$ zT~t(Q=F@A(N-E6}np7_V%c&86i7hnZb+_0;LTY?0dT{j!I8Y-JfWv}sC-`~4G6sC6 z&`bF?4$%e}I`=&_om9g=^d$+w0GgWRG~F%A6=bqpdLRJm4a;C{4ep*UysG4Q+XoB7 z6^I-|8%bz;Aw6KySEZSO&bUJYtL%(=A3A6^-Ct(^}$x zIV;#Z@W7(dy;8>%*@(mTN7`P|Srpu3;Q-&(E<*l(#VMaExTwh8X6UMY8wuvZNSI&b z6=>fcE5exw)zP^l2!FlOOSeDZgGw;i$*jsG3xjrdyD_ow)L|Td%!cn>zNnVtGSq{m=Ic)1J`PO@?pS7IRhnU^Zd`HG-xkwq=JS=T zH#`(|aoW<%hXLj_d3!a#1e%O%PHiyCsM!6(eU7sEcA_;FifZ52gjvzY)={Nc zwxg%D74vY=xsfQEmpq6OdAK~UYi`p3bw&oXLBBx*(%-~JxHdH3f85eYewoe|fBrD~ zHwP>W%Mkr8x&q=-r`i*~9<5jnI`)j4-P^Tdok70@+*Et(w5h(1y}8mJY6ZP~pV-^Q z@)NxDLKr!80FKOjla0-bD})Or?hqB_{b&5ublf+9~2N(_hAr|EjyaBZ5*e{zkvYScE6})V{plSb$eRjz}EH& zZsPt9;`0768gwlv>QTr%ZU_Zh#?1v`g02oA&(C+-0IGu%49Esn0G!o;tjipFQFnk^ zlMq<5agERRWmW@_T$4sH5CQHw>sqj**b?G1k#l*X5ws9>Ieim6-~MRTxUY2xI@x{aIIir|8N&ExuwZV^kBhR=*~%M$t5^b_LRmZf!db+21 zbv18bl~M4E*w%>WiP6j_&!5?rl2=aOA|v8MQ6q-@`zF6ns|2Ep^DvR0hPJ3Kxmt@OSZ=J9PCj?NjZRn6&{t2$z2C@1e&5}BaM0;NoOENOJJ^4r zrc;GyL&a!34^)pKVbJs0e4jOH*`b@?T%;wW|14p6cx$Z7KU^=zG}z5#C+cdqc)KUFn(lVmEE!iksNu80!Fg4|{B1$8}W;eLSFOzM%bW zYyCZd!3DMSLrKU#PU+%VKbJMSlMB|rjMs*Td_&)O>rml{`hr&C)BMx1a(mH}Ctpp^ z89x+R3O@=&0}iPYlMxqlS%(l(j~YZiDyhG6(LlF zzfXkjmt9r%q@-MkK@m#x5%E~lkwr*eFC#eFjFf$mc7Mh1t~?<38~>}OREBEvSIzaV z(Io}}HVp5azzdo0vWL%W&Z6upO`5;zDqN}RVV^%np$V=XnhYm6w*}EO#dJW>;2v$m z1DJP6$kBIEz4l)-4hcD$K{E*GgzVo^ar2bzTShS$7H;00*3F7b@*+>I3WHY)H_tRo zEOO{Qap`+Km)nSi4&s0)>LtL$6#$(c09gh1(V#V%1)wtN(mvsbY$VCyKkxY{NE<*i ziUSCifCb!yO@84ubIFOJQ580<>_XYQ-(~IeZF3FAg6u%y=rL5A6#%7HPX%Gz4uUWT z+g5CZtbiGK=b{ja+#S6jzjO=b8aJTA=AIUAy=8#{aEY~b9VwdYB$G69ghiCmEuPPW zT;T#9ev69LQT@`|L9#>HN*{ zr9!nJ?8Y+CX!KnlfB*(oq`!8~K|en2JSE5C5)T|h&^#HZ9Uip$lI|+S8Sd4arOrv( zK6l849(ud9wY~6MO+cYI?^n(tnA0rXTH+WBTjOls!0#UhqChru3=x`vmM|DQRuu-j zH^x>Irq&Wv>W^poF>@Y)SKmFvWyA5bXNJpB=RCG$GE zbM2d`P|@K2A`i2tSpRA!ihu{%gmr|5*N%@uDspJR$2z%S<&p0@m!^;=*;p6=F31q) z2agG!2F-RB#K{zf$30JU%NOB!mR6T5DPT3$Q}t(2@ag8ZNt2JachW@KpovacCMw4v zIxOX@P5v$%_=RLdjg!h$?T)W|*jrlP2R?}8M7(issHpILmy7rIiwl7O-#t2mWz(^H z_acja+{>e+bxccITz-FhdLLG>=p&Kj7N8QtL@%Ml;=lmZN@xqYt+Pux`06$LOOw2$ zlTTSdgq`<|=4+6}(5YvmWw*qkA@FWs6WfajfSmXK6fVVr-)8W&0==2TeZ_nSkZByR zistiqP$@7GgaqiYfZy5G#A^VWv5G~6jsu^NZw?{p9{_=ksH}JiK-zL@3lIwl>Jb6j z2fu6rnyFlNYu}%q1Crk@9u=!x0R`~G*i}G0sKsY=>qR{7*SRcvS&qW$%SFS>jM$le zJerw;u{pB6al-Vu1`!_Sm)KsrtYZ<2a3PwRF0sJu%)-IJmeC%`8q7@US*sxYS8I)X zlT>!r!-+bF5k}=1nJnd*EB1&oKL+I)poKiw-dCCNiAN2{kJa&VXs-ItEz2RjZQGtu zJkbvfH$#rm&qq`XC|y=`4n8Ij?%SuTO~zEwZ|Izg zR$K8rcA`;XE&(f^&LY|lMQ%p|p&|y~sE3mjR|9v|d!F%R5s-c-_-}Q(K-|M^%SjrN zCu`n+NU2kZy`OM;MygH{nJNlw6IrY_QiD?Z zqTSiPS!<#*0SxPP_f1>$5G-0KBP+XBrj?c6W^5k;J6iIk*?)wdUl-^GfO2s|J!<}G zK;g@t5PpnxeXSV5^*<_ZU5L;!MdF&%bguH8QMoDQxbV7xj|2ZgiZ*DrmV z{EifWPvWw!ZB7PX2fo!^9CYm*vZ%F>2I-foGsC$qfE*Pop*;wTq*bkuyy}=ywK)}X z)>KaTr%^Q${7?DiyEalig9TJF$wvGo$(YgJbn?3|_$PZ>_ZYiqJ0gahxORkd)hRyL z7TxlV{7)tj<{$kEx4aY`BF%Nl%!}wGA~)~cVylS9jVHH6l|v$yn3QWKA6QUJxy6YN zSq+3@a_I{E88Xjv)jNco1#yqImfF>ifMz~h6u^3dUJsARrSYmc`<7<%Dle+q9;I=QewDNsnyuV({f;2_gLG8$l8+eQQC5CBc4 z2E=Zyqv2N2M&EYvVKh4j{mDGybQguSv}1C&1(B+7#L<_6-uEvkbg_Jce_4 z8wym>^RJ&?N^b+Usb!DsD<%krHI1X^+?YQ#`uWPR?ZDUeE zk?N?0Ki6u$o;LhCq=I8fZPE(Q)~KOxXF_Y{vjldX)n@efgt+R!xcKD;lMlR(>GT#y z6DDb?DJyiyqDRv!gK;iXAZZ#|w}^bN)$Kw*^k9xm>vFv{Xfx*1@o zEwrX3Z>*H3|JvroPgns8r?Ej=Bt?^$e!pf;+w&)`3hMZ9p}&YUM?+n$7&ZT>psxSR zQHAR=Wr1o4{G(?CqHy$LS_H#<`hq8r@~~MX_qD^_FsP8>eB-mhvqxotG5$NiIvO)y zwzGX4rl{^fKP~^=W85^z>m3)*8897P@j`u$Zpd+KXD!ATi2+TWzGw$chXZ;^xO%W1 zBm)cK*T3JUjxNklzo(Ce*V1ifp`dYJxUYbNOdRAoqhyicAl;vU!ZRTKW+DnyBBleM z6LxU^AvkquAFk%s$<9(z86enZF@WP3(vIQ{8D+Hx>IHo|hrAz_llw2_e~>YlEUQ>j zbs+O!T6j?6Cg$?xQ`9obx%egN8k14=pc~;Fh5wSqi*HjRW@V}H3BQniFM$%%3T5Ho z9BYSKbsJrDv*;*$NOFpMUgDGk8Fkz4&W9*@l$We+Rm1XGFyhvRYIhSuyFzu3U$PdprY4cLnzYGjw z4O()PLAbqRx9eC&7rs8(ZDQV}+r@rL8BZT$;?FlyKR1@LEd`E+mAbSS-kH4ljkXo= z;MLw5d3o{vH*o&Cp-)=-yw2(3_yfItz(SyG^J#3kIN8vn_Y2P&5nfs4;Rh7&)4{0Z zD%?ci5dgNw0hKwFVTiBfV3Eey#6?^a+0bnyFc;QzKUwTHHx~E=KwE%k%*iN#Lp9rK z5r95M1J%<_?9$l}@f%8ez&TtlYAaOJ6$GHzV-tszjt$E8A zRP0<8KiVr6!nCnFY<-_DepFpy%{NYtTPp6*o;grH{?mXfx6l}PyxrV%>Px;@_$E+% zE$j3m@r`vzT846@*~Me@W5BF4Zi~06k53!%XRrMf*&4@avf!g&0dRlW6TGq)6#%LB zpt=0zi}oPnryvjO%fi?GR^xTC8uJQnEpo1~SW3aLa?T4a?RHgZA)35}v60hL0J#@51(H%OynfJ}tK?xNKDef-;idB0$I$Nmh{@i=Ixhho2c0J?-doc= z0gR9G_?o2O+s%guf))lQotE`(dWWB_?Sf+rONSgKgC7|?|In=zfYq3ryeP@I zPB@QTMt(`uWn|V0S{nTJ|EN9Ql*{7ar)_v+%+hQ_P}u+diww@D;PIZvNrrar4u0|0 zKshfe8v{745=x_!DoMebOLuP9)e+(Kmt7cB_Oc-# z5}KJ4pKD*2(|-R9jV#f)GR^cjG<_j$!aDja%VDm0Bca$Sf27zcj7D*$>uvE4#FSWD zysJ2&V!0Lf)2(QO!>T?F9LT0toP2yjMfE^ba#D(Y<l@~+r;5HoFQ_9jq#S0VBgPQlhmABI@)2FzfZYG(A;Lw- zZX)!5eCo$;<>ZcmcSJYfuUReqO~>DP8(m5UWE zxC9(tiJhhKCR#&oZ^`Ha5NwZBvJE5?2k4i+1E-=O{Hf}ts5QmwhbR`rb)ykze};zA z^H1?aVWAd_z$dJg=JV@2nG7-4lR%H3X}qesm=yl$NeY(sZ*Wz-`hlZ<9$~yy!P? zaj%?Q?mbXVF1jy{S#;T_UcS!h8OB!|j1Bx$mY1}=fJrDU_=Wo^p6teb03Ek=n+!YG zbfNlFiTPe&z6K^LcnDHml8etyZVaf=@~s512b$7Ue?F*WLr+4@rp_lO!)4N}@6PVo zjGl#fN%UoTYzZ0rQ&Qq_1d{sJQ-n=u(yWC~k}M9wOs+#_6j^i?IjlVDD72+>OSunf zL`xa%R+u+gt6v2^Z@!ju*-GODKof?jKHhrZB0SuT6Zz&^z!*F}6=o7)_j_b;g4z4g zn-4nO$!;&k_5%x_=FVwzE%%rozuO&bVybfr_1o-u{1ar<`9slunckI@%A=v_A|hww z#(5r01sp)XBUnWFBg*GXF#nl-h4%LW=>vb}O{gqBDMY$v(cq5)fYyb6HwFM+LV zA;?;NJR-UkVmw<{;`Lcl@)uwQ^*2ddcx|5d^S$7IWb!j0%iI5+4H^Q(v z!iqq0YkNOPn)YI?KC&MLP!LhGQxPTMAx9Lg*BcdA_v#7oCyo`ZVeyKqxB;$Zlq?ZLzDNDx$X=XoTQ6ufVbu3-q44!niIKZ{a0Vi4JHyd~Q~@{9bC zcy^UTkz$_OKRN&v)3zR}L9^(EcQGJ(Bzi#^N=+RtJm6)$-QP&P*3Z^YzW>jUJ#|EL zQNAfR+(}ICk_wUp72#cj#QVxtjsrela7aogdtrnhKe>@aIQ>X+D5ghkGB4xfSnsh9 z+ru!A`PfX3wU>(lWIY3mIw2f4LQJy9H9BKroxo^K_A&)B=_8TW1>x0~GByxWn)3WV z$&xR7FQ|88q`eN6?G+1YDbtO5e+>V4^X=0^-6iL_Z@*42PV^nkZxU7)x1K*k7T7FV zr7C5}YYa|ztWb`fi>#fK9h|zErK0#zlzR$}Zw;c_1+`{7!UHv+ ziVDsfsTTzlv-UOu5N}=Ixqfrw<{6YgbSwBe9dyTh;!eQ?M7%EOG!Tq=(l8D><;*+nub}e{ zux~tue#)W5UJCI1xlBj`wr!(2ba+ONL630(!N}`9zr!;wc7Q@Fi4S@QNKjY$2DJTi zR{!I(m}BUHHwK&pXv9B=mzOhXe)1vSYUkCmXZGm0IE#*^{i%72i}J}rKA?>HmRk)^ zlnhx(l1y*6X*IxVZ31_WD>iwlS=6+$&Nd!sTY17MLL5~2l)z)Y z%T}U~bH$Y;j4a?3N%(R{HQnjE%Q7uQ^)zsLTm)|Xdi;9zV4`x_R^z@h`~*g~55AgN zRQchJxz0lI5TLMh8JPG|uZCbWejPrLF>`VMB3a>)^m#R9eQJxF^v!hd9}RwI1!>A? zGWF&S<`SvfCqjK}Jsh!Z9)murYb8GQDQ&Bucdtq>6PbhC}kVmSJBKS!-3)zl*t#&J}9-B zXMJSzV0R(UF?_GIX;?;!@Mq=JB+v0TmlUX@Kl!7=e-HXaRZeHSlK&O!i7&Sfa$mE} z)rsPK3-O&zUvVi*=oYCW}%+`CYZiv2~9fNL+^I1t=wtsPTX$I z);X^_?bySxV@q|9?Ikf1Rw5)JAC{CoSChLz$HhZF4heQCR_3=20_qPDC1EeXH?9c3 z4%a?V8U8|ha0$5|f}0q5wLJm+;Fbf-{+wQ01IBmi0LQg!_=5wrt7ceT0Z;F7;y`Af zfaL$M4Zy^U9e^7PDSi6>3%e9#eI3$erQ5X1n8EdqV)z(3rE;yuRB!iJ=A%H~*e0-H zFLsu+AW=+OvSfwavUm)D#{u;HO!Ku4VI0f(!GHe@&2~{*@xE`94e34t|D?uJ(P0CjH#EYditS* zN+kX2eyOpkw>KDI!EW}X(Vu9W%2p)>#o~U48R;lK|ajTh+hOgTgyCP(q z8LGelAH&pg{%M^puac(n$37ubLXN7hTuN-RpK)(;Dih=S?z?>ibomyG5cmA zAGNDhnVvtW@7q>x>BYIWTD66>9b9ZC!ccQNMsp3U=tNMpa|?B7y_hj7et) zkOeZOD`v5w6{0#;d@vj|wKd zKjZ!M!>SZ43Mdi(J04v@nO)bNr;)OY3S0e-5e}**)p{7_M&w1MgK`nOInW z>aBhX@8x#2g&WSzVy^tKW#MMfYWN%y8EdL5{gY$wTUVufo!Ks|s}}dXeU1&e)zy4h z^;&YfOZxesWaa%iu2x5(7u=Gc%3y1fwV4$>E|sQTnU!`fow=4HbL6cywa;lP-tR@W zYSx<4RLwdggFWR-VHL5k!QJ1;xZqdvRqPhYl|!&x$r4yqt4qFVJG+ti-f^p?d@-z^ z7nbfEz1SdC#XD!<>^qO(__x;Izj|< zWo2uib~TUl57Vm5Iy>hD)4H;`lUAi#V}V&h=Z#?NTK#HRv~#OzFS|KSrQ~igvLQH7 z{v*3da+TVg?QUbM{a8h-^MPqOtafO2G&r=@2wZ{Oi$|6&7D?44?*2e#u+*08oS;en z)uQ>gZvWTZw{()|zv=n^eR|H8`~)Av1!dE*R50jF-EsLbxvby_uGUQLWjSE z=4=}9ZjNYkSOx4ON2IMLDGtp$JhK{yC|CkmncuCfJle5(yqcp7DNHJm_j@%*QI<5S z;IaFCyVGEZ+QIXCuyToyvun84`mgv)kk8Ei4{kLJaSX>{`)KVF;Aig8DT$M*>o^#N zCdIOa;rNwfmji&;%&fv@5J%s@wO(Ok2!^RlYrlEyP`PBtUFytA#-sXI>ruzpX22-L z8#P9AX}K%N@9x0Oe2QfBQs_4OdS(7#HJAf)AdkcLuC#oa+};l>OT5!MaIqDF`m!Zg z?q)P+=VvokZLn7W*{fkM1fdpl(KHjwQm8;!OKNH^9J3a`#fTXU2Szn}{dY{xAwY;J z79P3`b+(6xKqFSKpx?i&H@d+7?5wXFbDwuGX3Ka9i?oFuZzgEFT3xZ96O62^TUuXz z>Fu9)d66A{4*!KX0SfkJM>_{gPIcJX^CgTg6($lb45Zk*)f@|NC3CQ|$*vgkCixw< zo-6d3@KPlgwCc@eqLwjle@~?%5n*6a)aB^@ zOOBz-jkdqMVrxi_flags & EXT2_INDEX_FL) + if (inode->i_flags & (EXT2_INDEX_FL | EXT4_EXTENTS_FL)) return 0; /* diff --git a/tests/f_extents/expect.1 b/tests/f_extents/expect.1 index da65f949..b4d36d20 100644 --- a/tests/f_extents/expect.1 +++ b/tests/f_extents/expect.1 @@ -2,14 +2,6 @@ Pass 1: Checking inodes, blocks, and sizes Inode 12 is in extent format, but superblock is missing EXTENTS feature Fix? yes -Inode 12 has an invalid extent - (logical block 0, invalid physical block 21994527527949, len 17) -Clear? yes - -Inode 12 extent tree (at level 1) could be shorter. Fix? yes - -Inode 12, i_blocks is 34, should be 0. Fix? yes - Inode 13 missing EXTENT_FL, but is in extents format Fix? yes @@ -19,47 +11,57 @@ Clear? yes Inode 16, i_blocks is 16, should be 12. Fix? yes -Inode 17 has an invalid extent - (logical block 0, invalid physical block 22011707397135, len 15) -Clear? yes +Inode 18 has corrupt extent header. Clear inode? yes -Inode 17 extent tree (at level 1) could be shorter. Fix? yes +Inode 18, i_blocks is 2, should be 0. Fix? yes -Inode 17, i_blocks is 32, should be 0. Fix? yes -Inode 18 has corrupt extent header. Clear inode? yes +Running additional passes to resolve blocks claimed by more than one inode... +Pass 1B: Rescanning for multiply-claimed blocks +Multiply-claimed block(s) in inode 12: 5133 5124--5125 5129 5132--5133 5142--5145 +Multiply-claimed block(s) in inode 17: 5124--5125 5129 5132 5142--5145 +Pass 1C: Scanning directories for inodes with multiply-claimed blocks +Pass 1D: Reconciling multiply-claimed blocks +(There are 2 inodes containing multiply-claimed blocks.) -Inode 18, i_blocks is 2, should be 0. Fix? yes +File /fdup1 (inode #12, mod time Wed Jul 5 21:55:26 2006) + has 10 multiply-claimed block(s), shared with 1 file(s): + /fdup2 (inode #17, mod time Wed Jul 5 21:55:27 2006) +Clone multiply-claimed blocks? yes -Special (device/socket/fifo) file (inode 19) has extents -or inline-data flag set. Clear? yes +File /fdup2 (inode #17, mod time Wed Jul 5 21:55:27 2006) + has 8 multiply-claimed block(s), shared with 1 file(s): + /fdup1 (inode #12, mod time Wed Jul 5 21:55:26 2006) +Multiply-claimed blocks already reassigned or cloned. -Pass 1E: Optimizing extent trees Pass 2: Checking directory structure Entry 'fbad-flag' in / (2) has deleted/unused inode 18. Clear? yes +Inode 19 (/fbad-sock) is an illegal FIFO. +Clear? yes + Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -Block bitmap differences: -1081 +4611 -(4613--4614) -(5121--5142) +Block bitmap differences: +4611 -(4613--4614) -(5121--5122) +(5143--5146) Fix? yes -Free blocks count wrong for group #0 (7081, counted=7100). +Free blocks count wrong for group #0 (7081, counted=7067). Fix? yes -Free blocks count wrong (7081, counted=7100). +Free blocks count wrong (7081, counted=7067). Fix? yes Inode bitmap differences: -18 Fix? yes -Free inodes count wrong for group #0 (237, counted=238). +Free inodes count wrong for group #0 (238, counted=239). Fix? yes -Free inodes count wrong (237, counted=238). +Free inodes count wrong (238, counted=239). Fix? yes test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** -test_filesys: 18/256 files (5.6% non-contiguous), 1092/8192 blocks +test_filesys: 17/256 files (17.6% non-contiguous), 1125/8192 blocks Exit status is 1 diff --git a/tests/f_extents/expect.2 b/tests/f_extents/expect.2 index 5c9d6a67..c6c9ec2d 100644 --- a/tests/f_extents/expect.2 +++ b/tests/f_extents/expect.2 @@ -3,5 +3,5 @@ Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information -test_filesys: 18/256 files (5.6% non-contiguous), 1092/8192 blocks +test_filesys: 17/256 files (17.6% non-contiguous), 1125/8192 blocks Exit status is 0