<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:25:43 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-9384] conf-sanity test 32b fails with &apos;list verification failed &apos;</title>
                <link>https://jira.whamcloud.com/browse/LU-9384</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;After landing the patch for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9207&quot; title=&quot;Create new conf-sanity test_32 disk images &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9207&quot;&gt;&lt;del&gt;LU-9207&lt;/del&gt;&lt;/a&gt;, conf-sanity test 32b is failing in a Lustre DNE configuration. In particular, the failures are for the upgrade from disk2_9-ldiskfs.tar.bz2.&lt;br/&gt;
From the test log, we can see&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;CMD: trevis-35vm7 cat /tmp/t32/list
/usr/lib64/lustre/tests
--- /tmp/t32/list.orig	2017-04-21 07:14:02.501123374 +0000
+++ /tmp/t32/list	2017-04-21 07:14:02.587123374 +0000
@@ -22,8 +22,8 @@
 total 0
 total 0
 total 0
-total 10276
-total 80
+total 10280
+total 96
 144115205272502295 -rw-r--r-- 1 60000 60000 10485760 1490901645 t32_qf_old
 144115205272502293 -rw-r--r-- 1 0 0  1160 1488511399 README
 144115205272502292 -rwxr-xr-x 1 0 0 14167 1456757151 powerman
 conf-sanity test_32b: @@@@@@ FAIL: list verification failed 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So far, this looks like it is only impacting review-dne-part-1 test sessions.&lt;/p&gt;

&lt;p&gt;conf-sanity test 32b started failing with the &#8216;list verification&#8217; error on April 17, 2017. Logs for recent failures areat:&lt;br/&gt;
&lt;a href=&quot;https://testing.hpdd.intel.com/test_sets/0821ecfe-2686-11e7-8920-5254006e85c2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.hpdd.intel.com/test_sets/0821ecfe-2686-11e7-8920-5254006e85c2&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://testing.hpdd.intel.com/test_sets/e18c9b86-2688-11e7-b742-5254006e85c2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.hpdd.intel.com/test_sets/e18c9b86-2688-11e7-b742-5254006e85c2&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://testing.hpdd.intel.com/test_sets/8fe37e7c-2696-11e7-8920-5254006e85c2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.hpdd.intel.com/test_sets/8fe37e7c-2696-11e7-8920-5254006e85c2&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="45645">LU-9384</key>
            <summary>conf-sanity test 32b fails with &apos;list verification failed &apos;</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="ys">Yang Sheng</assignee>
                                    <reporter username="jamesanunez">James Nunez</reporter>
                        <labels>
                    </labels>
                <created>Fri, 21 Apr 2017 14:56:50 +0000</created>
                <updated>Tue, 16 Jan 2018 21:08:47 +0000</updated>
                            <resolved>Wed, 7 Jun 2017 20:56:47 +0000</resolved>
                                    <version>Lustre 2.10.0</version>
                    <version>Lustre 2.11.0</version>
                                    <fixVersion>Lustre 2.10.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>12</watches>
                                                                            <comments>
                            <comment id="193085" author="sarah" created="Fri, 21 Apr 2017 21:43:02 +0000"  >&lt;p&gt;It seems a lustre upgrade issue. I tried to mount the same disk2_9-ldisk image on both 2.9.0 system and 2.10 system and found&lt;/p&gt;

&lt;p&gt;on 2.9, untar the image and mount as loop&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@onyx-69 2.9]# mount -t lustre -o loop,writeconf,mgsnode=10.2.2.59 /tmp/2.9/mdt /mnt/mds1
[root@onyx-69 2.9]# mount -t lustre -o loop,writeconf,mgsnode=10.2.2.59 /tmp/2.9/ost /mnt/ost1/
[root@onyx-69 2.9]# mount -t lustre 10.2.2.59:/t32fs /mnt/lustre/
[root@onyx-69 2.9]# lfs df /mnt/lustre/
UUID                   1K-blocks        Used   Available Use% Mounted on
t32fs-MDT0000_UUID        125368        1732      114276   1% /mnt/lustre[MDT:0]
t32fs-OST0000_UUID        162888       19732      129156  13% /mnt/lustre[OST:0]

filesystem summary:       162888       19732      129156  13% /mnt/lustre    &amp;lt;---------------------different line

[root@onyx-69 2.9]# ll /mnt/lustre/init.d/
total 80   &amp;lt;-------------------------------------------------------different line
-rw-r--r-- 1 root root 15131 Sep 12  2016 functions
-rwxr-xr-x 1 root root  4608 Dec  7 16:41 lnet
-rwxr-xr-x 1 root root   868 Dec  7 16:41 lsvcgss
-rwxr-xr-x 1 root root 16783 Dec  7 16:41 lustre
-rwxr-xr-x 1 root root  2989 Sep 12  2016 netconsole
-rwxr-xr-x 1 root root  6643 Sep 12  2016 network
-rwxr-xr-x 1 root root 14167 Feb 29  2016 powerman
-rw-r--r-- 1 root root  1160 Mar  2 19:23 README
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;On 2.10, did the same thing but found the size is different, marked in arrow&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@onyx-70 ~]# lfs df /mnt/lustre/
UUID                   1K-blocks        Used   Available Use% Mounted on
t32fs-MDT0000_UUID        125368        1892      114116   2% /mnt/lustre[MDT:0]
t32fs-OST0000_UUID        162888       19768      129120  13% /mnt/lustre[OST:0]

filesystem_summary:       162888       19768      129120  13% /mnt/lustre &amp;lt;-------different line

[root@onyx-70 ~]# ll /mnt/lustre/init.d/
total 96   &amp;lt;-------------different line
-rw-r--r-- 1 root root 15131 Sep 12  2016 functions
-rwxr-xr-x 1 root root  4608 Dec  7 16:41 lnet
-rwxr-xr-x 1 root root   868 Dec  7 16:41 lsvcgss
-rwxr-xr-x 1 root root 16783 Dec  7 16:41 lustre
-rwxr-xr-x 1 root root  2989 Sep 12  2016 netconsole
-rwxr-xr-x 1 root root  6643 Sep 12  2016 network
-rwxr-xr-x 1 root root 14167 Feb 29  2016 powerman
-rw-r--r-- 1 root root  1160 Mar  2 19:23 README
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="193094" author="adilger" created="Fri, 21 Apr 2017 23:19:23 +0000"  >&lt;p&gt;The values that are different are the allocated filesystem blocks on the OST (in &lt;tt&gt;lfs df&lt;/tt&gt; output) and the allocated file blocks (in &lt;tt&gt;ls &amp;#45;l&lt;/tt&gt; output).  I don&apos;t think those differences are reasons to consider this test failed, since there may be any number of reasons for this difference (e.g. allocation of internal log files, slight changes to on-disk format, etc).&lt;/p&gt;

&lt;p&gt;It would be interesting to find out why these differences exist to see if there is really a bug.  Firstly, check &quot;ls -ls&quot; on the directory to see if the block allocation of any file has changed by 16KB, or if several files have changed by 4KB?&lt;/p&gt;

&lt;p&gt;A good candidate may also be that the extra PFL xattr data that is being stored on the OST objects is (incorrectly) causing an external xattr block to be created for each file.  That would cause a severe performance drop for ldiskfs filesystems upgraded to 2.10 with 256-byte OST inodes and would need to be fixed.  We had similar problems many years ago when OSTs first started storing the &quot;fid&quot; xattr on 128-byte OST inodes, causing every file to get an external 4KB xattr block.&lt;/p&gt;

&lt;p&gt;To check this, please do the following steps on the OST after the 2.10 upgrade:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;tt&gt;lfs getstripe /mnt/lustre/init.d/*&lt;/tt&gt; to get the OST object IDs of those files&lt;/li&gt;
	&lt;li&gt;run &lt;tt&gt;debugfs -c /tmp/2.9/ost/&lt;/tt&gt; on the device&lt;/li&gt;
	&lt;li&gt;use &lt;tt&gt;stat O/0/d(&amp;lt;objid&amp;gt; % 32)/&amp;lt;objid&amp;gt;&lt;/tt&gt; to list each OST object to see if it has external xattr blocks (shown with a non-zero value for &lt;tt&gt;File ACL:&lt;/tt&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The main suspect here is patch &lt;a href=&quot;https://review.whamcloud.com/24882&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/24882&lt;/a&gt; &lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8998&quot; title=&quot;Progressive File Layout (PFL)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8998&quot;&gt;&lt;del&gt;LU-8998&lt;/del&gt;&lt;/a&gt; pfl: enhance PFID EA for PFL&lt;/tt&gt; which increases the size of the &quot;fid&quot; xattr on the OST objects, but was supposed to fit into the in-inode xattr space.&lt;/p&gt;</comment>
                            <comment id="193104" author="gerrit" created="Sat, 22 Apr 2017 04:16:35 +0000"  >&lt;p&gt;James Nunez (james.a.nunez@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/26787&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26787&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; test: Add conf-sanity 32b,c to ALWAYS_EXCEPT&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 1bdccfb92110c5148e75b9add4e42e8e89766214&lt;/p&gt;</comment>
                            <comment id="193139" author="gerrit" created="Sun, 23 Apr 2017 04:25:18 +0000"  >&lt;p&gt;Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/26789&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26789&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; tests: skip 2.9 filesystem images on 2.10&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 74dc91c14513227b75958357030115b95d9a79bf&lt;/p&gt;</comment>
                            <comment id="193145" author="gerrit" created="Sun, 23 Apr 2017 09:17:55 +0000"  >&lt;p&gt;Andreas Dilger (andreas.dilger@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/26789/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26789/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; tests: skip 2.9 filesystem images on 2.10&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: bfa524f46b1506919fb6dc5aa68679568a5f04a3&lt;/p&gt;</comment>
                            <comment id="193177" author="adilger" created="Mon, 24 Apr 2017 06:07:44 +0000"  >&lt;p&gt;Patch landed has only skipped the failing test, ticket should not be closed yet. &lt;/p&gt;

&lt;p&gt;Any patches to fix this issue need to remove the change from patch &lt;a href=&quot;https://review.whamcloud.com/26789&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26789&lt;/a&gt; so that the 2.9 images are used. &lt;/p&gt;</comment>
                            <comment id="193279" author="sarah" created="Mon, 24 Apr 2017 20:50:57 +0000"  >&lt;p&gt;Running ls -ls on both 2.9 and 2.10 got following. there are 4 files changed by 4KB:&lt;br/&gt;
on 2.9&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@onyx-69 init.d]# ls -ls
total 80
16 -rw-r--r-- 1 root root 15131 Sep 12  2016 functions
 8 -rwxr-xr-x 1 root root  4608 Dec  7 16:41 lnet
 4 -rwxr-xr-x 1 root root   868 Dec  7 16:41 lsvcgss    &amp;lt;-----------
20 -rwxr-xr-x 1 root root 16783 Dec  7 16:41 lustre
 4 -rwxr-xr-x 1 root root  2989 Sep 12  2016 netconsole
 8 -rwxr-xr-x 1 root root  6643 Sep 12  2016 network &amp;lt;-----------
16 -rwxr-xr-x 1 root root 14167 Feb 29  2016 powerman  &amp;lt;-----------
 4 -rw-r--r-- 1 root root  1160 Mar  2 19:23 README  &amp;lt;--------------
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;on 2.10&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@onyx-70 init.d]# ls -ls
total 96
16 -rw-r--r-- 1 root root 15131 Sep 12  2016 functions
 8 -rwxr-xr-x 1 root root  4608 Dec  7 16:41 lnet
 8 -rwxr-xr-x 1 root root   868 Dec  7 16:41 lsvcgss
20 -rwxr-xr-x 1 root root 16783 Dec  7 16:41 lustre
 4 -rwxr-xr-x 1 root root  2989 Sep 12  2016 netconsole
12 -rwxr-xr-x 1 root root  6643 Sep 12  2016 network
20 -rwxr-xr-x 1 root root 14167 Feb 29  2016 powerman
 8 -rw-r--r-- 1 root root  1160 Mar  2 19:23 README
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then on 2.10, for these 4 changed files, the File ACL shows non-zero value. For example for file lsvcgss:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;/mnt/lustre/init.d/lsvcgss
lmm_stripe_count:  1
lmm_stripe_size:   1048576
lmm_pattern:       1
lmm_layout_gen:    0
lmm_stripe_offset: 0
	obdidx		 objid		 objid		 group
	     0	            15	          0xf	             0

debugfs:  stat O/0/d15/15
Inode: 154   Type: regular    Mode:  0666   Flags: 0x80000
Generation: 2932758177    Version: 0x00000001:0000004c
User:     0   Group:     0   Project:     0   Size: 868
File ACL: 8398    Directory ACL: 0
Links: 1   Blockcount: 16
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x58dd5aa9:00000000 -- Thu Mar 30 12:21:13 2017
 atime: 0x58dd5aa9:00000000 -- Thu Mar 30 12:21:13 2017
 mtime: 0x5848ac2e:00000000 -- Wed Dec  7 16:41:18 2016
crtime: 0x58dd5a9d:a2bcc980 -- Thu Mar 30 12:21:01 2017
Size of extra inode fields: 32
Extended attributes stored in inode body: 
  lma = &quot;08 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 00 00 00 00 00 00 00
 &quot; (24)
  lma: fid=[0x100000000:0xf:0x0] compat=8 incompat=0
EXTENTS:
(0):39936
debugfs:  
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;unchanged file shows 0, for example file functions&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@onyx-70 ~]# lfs getstripe /mnt/lustre/init.d/*
/mnt/lustre/init.d/functions
lmm_stripe_count:  1
lmm_stripe_size:   1048576
lmm_pattern:       1
lmm_layout_gen:    0
lmm_stripe_offset: 0
	obdidx		 objid		 objid		 group
	     0	            12	          0xc	             0

debugfs:  stat O/0/d12/12
Inode: 151   Type: regular    Mode:  0666   Flags: 0x80000
Generation: 2932758174    Version: 0x00000001:00000049
User:     0   Group:     0   Size: 15131
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 32
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x58dd5aa9:00000000 -- Thu Mar 30 12:21:13 2017
 atime: 0x58dd5aa9:00000000 -- Thu Mar 30 12:21:13 2017
 mtime: 0x57d687d9:00000000 -- Mon Sep 12 03:47:53 2016
crtime: 0x58dd5a9d:a2bcc980 -- Thu Mar 30 12:21:01 2017
Size of extra inode fields: 28
Extended attributes stored in inode body: 
  lma = &quot;08 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 00 00 00 00 00 00 00
 &quot; (24)
  lma: fid=[0x100000000:0xc:0x0] compat=8 incompat=0
  fid = &quot;01 04 00 00 02 00 00 00 0f 00 00 00 00 00 00 00 &quot; (16)
  fid: parent=[0x200000401:0xf:0x0] stripe=0
EXTENTS:
(0-3):38912-38915
debugfs:  

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="193293" author="adilger" created="Mon, 24 Apr 2017 22:08:38 +0000"  >&lt;p&gt;Hmm, it looks like the core inode size may have also changed in this release due to project quota.  The larger inodes have 32 bytes of extended inode attributes:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Size of extra inode fields: 32
Extended attributes stored in inode body: 
  lma = &quot;08 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 00 00 00 00 00 00 00
 &quot; (24)
  lma: fid=[0x100000000:0xf:0x0] compat=8 incompat=0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;vs. only 28 bytes for the smaller inodes, and the &lt;tt&gt;fid&lt;/tt&gt; xattr still fits in the inode:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Size of extra inode fields: 28
Extended attributes stored in inode body: 
  lma = &quot;08 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 00 00 00 00 00 00 00
 &quot; (24)
  lma: fid=[0x100000000:0xc:0x0] compat=8 incompat=0
  fid = &quot;01 04 00 00 02 00 00 00 0f 00 00 00 00 00 00 00 &quot; (16)
  fid: parent=[0x200000401:0xf:0x0] stripe=0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="193295" author="adilger" created="Mon, 24 Apr 2017 22:34:53 +0000"  >&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;struct ext4_inode {
        :
        :
&lt;span class=&quot;code-comment&quot;&gt;/*80*/&lt;/span&gt;  __le16  i_extra_isize;
        __le16  i_checksum_hi;  &lt;span class=&quot;code-comment&quot;&gt;/* crc32c(uuid+inum+inode) BE */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*84*/&lt;/span&gt;  __le32  i_ctime_extra;  &lt;span class=&quot;code-comment&quot;&gt;/* extra Change time      (nsec &amp;lt;&amp;lt; 2 | epoch) */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*88*/&lt;/span&gt;  __le32  i_mtime_extra;  &lt;span class=&quot;code-comment&quot;&gt;/* extra Modification time(nsec &amp;lt;&amp;lt; 2 | epoch) */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*8c*/&lt;/span&gt; __le32  i_atime_extra;  &lt;span class=&quot;code-comment&quot;&gt;/* extra Access time      (nsec &amp;lt;&amp;lt; 2 | epoch) */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*90*/&lt;/span&gt;  __le32  i_crtime;       &lt;span class=&quot;code-comment&quot;&gt;/* File Creation time */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*94*/&lt;/span&gt;  __le32  i_crtime_extra; &lt;span class=&quot;code-comment&quot;&gt;/* extra FileCreationtime (nsec &amp;lt;&amp;lt; 2 | epoch) */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*98*/&lt;/span&gt;  __le32  i_version_hi;   &lt;span class=&quot;code-comment&quot;&gt;/* high 32 bits &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; 64-bit version */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*9c*/&lt;/span&gt;  __le32  i_projid;       &lt;span class=&quot;code-comment&quot;&gt;/* Project ID */&lt;/span&gt;
}; &lt;span class=&quot;code-comment&quot;&gt;/* = 0xa0 = 160 bytes */&lt;/span&gt;

struct ext4_xattr_ibody_header {
        __le32  h_magic;        &lt;span class=&quot;code-comment&quot;&gt;/* magic number &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; identification */&lt;/span&gt;
};

struct ext4_xattr_entry {
&lt;span class=&quot;code-comment&quot;&gt;/*00*/&lt;/span&gt;  __u8    e_name_len;     &lt;span class=&quot;code-comment&quot;&gt;/* length of name */&lt;/span&gt;
        __u8    e_name_index;   &lt;span class=&quot;code-comment&quot;&gt;/* attribute name index */&lt;/span&gt;
        __le16  e_value_offs;   &lt;span class=&quot;code-comment&quot;&gt;/* offset in disk block of value */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*04*/&lt;/span&gt;  __le32  e_value_inum;   &lt;span class=&quot;code-comment&quot;&gt;/* inode in which the value is stored */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*08*/&lt;/span&gt;  __le32  e_value_size;   &lt;span class=&quot;code-comment&quot;&gt;/* size of attribute value */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*0c*/&lt;/span&gt;  __le32  e_hash;         &lt;span class=&quot;code-comment&quot;&gt;/* hash value of name and value */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*10*/&lt;/span&gt;  &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;    e_name[0];      &lt;span class=&quot;code-comment&quot;&gt;/* attribute name */&lt;/span&gt;
}; &lt;span class=&quot;code-comment&quot;&gt;/* = 0x14 = 20 bytes including 3-&lt;span class=&quot;code-object&quot;&gt;byte&lt;/span&gt; xattr name */&lt;/span&gt;

struct lustre_mdt_attrs {
        /**     
         * Bitfield &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; supported data in &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; structure. From &lt;span class=&quot;code-keyword&quot;&gt;enum&lt;/span&gt; lma_compat.
         * lma_self_fid and lma_flags are always available.
         */
&lt;span class=&quot;code-comment&quot;&gt;/*00*/&lt;/span&gt;  __u32   lma_compat;
        /**
         * Per-file incompat feature list. Lustre version should support all
         * flags set in &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; field. The supported feature mask is available in
         * LMA_INCOMPAT_SUPP.
         */
&lt;span class=&quot;code-comment&quot;&gt;/*04*/&lt;/span&gt; __u32   lma_incompat;   
        &lt;span class=&quot;code-comment&quot;&gt;/** FID of &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; inode */&lt;/span&gt;
&lt;span class=&quot;code-comment&quot;&gt;/*08*/&lt;/span&gt;  struct lu_fid  lma_self_fid;
}; &lt;span class=&quot;code-comment&quot;&gt;/* = 0x18 = 24 bytes */&lt;/span&gt;

struct lustre_ost_attrs {       
        /* Use lustre_mdt_attrs directly &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; now, need a common header
         * structure &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; want to change lustre_mdt_attrs in &lt;span class=&quot;code-keyword&quot;&gt;future&lt;/span&gt;. */
&lt;span class=&quot;code-comment&quot;&gt;/*00*/&lt;/span&gt;  struct lustre_mdt_attrs loa_lma;
        
        /* Below five elements are &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; OST-object&apos;s PFID EA, the
         * lma_parent_fid::f_ver is composed of the stripe_count (high 16 bits)
         * and the stripe_index (low 16 bits), the size should not exceed
         * 5 * sizeof(__u64)) to be accessable by old Lustre. If the flag
         * LMAC_STRIPE_INFO is set, then loa_parent_fid and loa_stripe_size
         * are valid; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; the flag LMAC_COMP_INFO is set, then the next three
         * loa_comp_* elements are valid. */
&lt;span class=&quot;code-comment&quot;&gt;/*18*/&lt;/span&gt;  struct lu_fid   loa_parent_fid;
&lt;span class=&quot;code-comment&quot;&gt;/*28*/&lt;/span&gt;  __u32           loa_stripe_size;
&lt;span class=&quot;code-comment&quot;&gt;/*2c*/&lt;/span&gt;  __u32           loa_comp_id;
&lt;span class=&quot;code-comment&quot;&gt;/*30*/&lt;/span&gt;  __u64           loa_comp_start;
&lt;span class=&quot;code-comment&quot;&gt;/*38*/&lt;/span&gt;  __u64           loa_comp_end;
}; &lt;span class=&quot;code-comment&quot;&gt;/* = 0x40 = 64 bytes */&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This means we have 256 - 160 - 4 = 92 bytes for xattrs, 20 bytes for the loa ext4_xattr_entry, and 64 bytes for lustre_ost_attrs, and 4 bytes for the NULL separator between the last ext4_xattr_entry and the first value.  That &lt;em&gt;should&lt;/em&gt; be enough to fit with the packed &quot;lma+fid in a single xattr&quot; format.  If the &quot;fid&quot; xattr is using the larger &lt;tt&gt;struct filter_fid&lt;/tt&gt; that contains &lt;tt&gt;ff_layout&lt;/tt&gt; then it will not fit:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;struct filter_fid {
       struct lu_fid           ff_parent;
       struct ost_layout       ff_layout;
} __attribute__((packed));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="193328" author="yong.fan" created="Tue, 25 Apr 2017 02:56:55 +0000"  >&lt;p&gt;For 2.10 OST 256-bytes on-disk inode space, the usage is as following:&lt;br/&gt;
1) 160 (156 + 4 bytes for project quota) bytes used by inode itself&lt;br/&gt;
2) 4 bytes for xatter header&lt;br/&gt;
3) 20 bytes for LMA EA entry&lt;br/&gt;
4) 4 bytes for NULL between xattr entries and values&lt;br/&gt;
5) 24 bytes for LMA EA value&lt;br/&gt;
6) 40 (5 * sizeof(__u64)) bytes for PFID in LMA EA value&lt;br/&gt;
7) 4 bytes unused.&lt;/p&gt;

&lt;p&gt;So the 256 bytes should be enough for the OST inode with LMA + PFID + project quota. Missed anything?&lt;/p&gt;</comment>
                            <comment id="193329" author="yong.fan" created="Tue, 25 Apr 2017 03:03:03 +0000"  >&lt;p&gt;For old OST inode with neither PFL nor project quota, the usage is as following:&lt;br/&gt;
1) 156 bytes for inode itself&lt;br/&gt;
2) 4 bytes for xatter header&lt;br/&gt;
3) 20 bytes for LMA EA entry&lt;br/&gt;
4) 20 bytes for PFID EA entry&lt;br/&gt;
5) 4 bytes for NULL between xattr entries and values&lt;br/&gt;
6) 24 bytes for LMA EA value&lt;br/&gt;
7) 16 bytes PFID EA value&lt;br/&gt;
8) 12 bytes unused.&lt;/p&gt;</comment>
                            <comment id="193332" author="yong.fan" created="Tue, 25 Apr 2017 04:04:14 +0000"  >&lt;p&gt;Here is my local test with disk2_9-ldiskfs.tar.bz2 mounted against the latest master:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;root@RHEL6:~/Work/Lustre/L95/lustre-release/lustre/tests/
# ls -ls /mnt/lustre/init.d/
total 80K
4.0K -rw-r--r-- 1 root root 1.2K Mar  3 11:23 README
 16K -rw-r--r-- 1 root root  15K Sep 12  2016 functions
8.0K -rwxr-xr-x 1 root root 4.5K Dec  8 08:41 lnet*
4.0K -rwxr-xr-x 1 root root  868 Dec  8 08:41 lsvcgss*
 20K -rwxr-xr-x 1 root root  17K Dec  8 08:41 lustre*
4.0K -rwxr-xr-x 1 root root 3.0K Sep 12  2016 netconsole*
8.0K -rwxr-xr-x 1 root root 6.5K Sep 12  2016 network*
 16K -rwxr-xr-x 1 root root  14K Feb 29  2016 powerman*

root@RHEL6:~/Work/Lustre/L95/lustre-release/lustre/tests/
# 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="193333" author="yong.fan" created="Tue, 25 Apr 2017 04:10:05 +0000"  >&lt;p&gt;The top is:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;commit bfa524f46b1506919fb6dc5aa68679568a5f04a3
Author: Andreas Dilger &amp;lt;andreas.dilger@intel.com&amp;gt;
Date:   Sat Apr 22 22:19:00 2017 -0600

    LU-9384 tests: skip 2.9 filesystem images on 2.10
    
    The 2.9 disk images upgraded to 2.10 are causing common test failures
    due to small differences in space usage.  Disable testing these images
    until a proper fix is available.
    
    Test-Parameters: trivial envdefinitions=ONLY=32 testlist=conf-sanity
    Signed-off-by: Andreas Dilger &amp;lt;andreas.dilger@intel.com&amp;gt;
    Change-Id: I64d14ac6b079c50ee234ff886c9a80d9213ebbe5
    Reviewed-on: https://review.whamcloud.com/26789
    Tested-by: Jenkins
    Tested-by: Maloo &amp;lt;hpdd-maloo@intel.com&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="193334" author="yong.fan" created="Tue, 25 Apr 2017 04:11:26 +0000"  >&lt;p&gt;So in my local test, the &quot;4.0K -rwxr-xr-x 1 root root  868 Dec  8 08:41 lsvcgss*&quot; is expected result. Have I missed anything?&lt;/p&gt;</comment>
                            <comment id="193344" author="adilger" created="Tue, 25 Apr 2017 08:04:05 +0000"  >&lt;p&gt;Is this with or without conf-sanity.sh test_32b running?  Have you mounted the filesystem and allowed LFSCK to run?  Possibly the test_32b test is also accessing or modifying these files?  You would need to revert/undo the above patch so that the &lt;tt&gt;disk2_9-ldiskfs.tar.bz2&lt;/tt&gt; images are used.&lt;/p&gt;</comment>
                            <comment id="193461" author="sarah" created="Tue, 25 Apr 2017 22:23:02 +0000"  >&lt;p&gt;FanYong, I have an environment on onyx-23vm5 with the tip of master #3565, it still shows 96 for init.d, please feel free to use the node&lt;/p&gt;</comment>
                            <comment id="193740" author="yong.fan" created="Thu, 27 Apr 2017 07:49:06 +0000"  >&lt;p&gt;The reason is known now. The image of disk2_9-ldiskfs.tar.bz2 is NOT clean, there are some pending async OST_SETATTR operations on the MDT. So when system mount up, the MDT will send async OST_SETATTR RPCs from the MDT to the OST, one of the target is the &quot;init.d/lsvcgss&quot;&apos;s OST-object. Then it triggers the following calls:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;ofd_setattr_hdl() =&amp;gt; ofd_attr_set() =&amp;gt; osd_attr_set() =&amp;gt; ldiskfs_dirty_inode() =&amp;gt; ldiskfs_mark_inode_dirty().
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Inside the ldiskfs_mark_inode_dirty(), because the on-disk inode for such OST-object is old formatted, means without project quota support, so its size of extra inode fields is 28, but the running kernel is new, support project quota, the default size of extra inode fields is 32. So as following:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;int ldiskfs_mark_inode_dirty(handle_t *handle, struct inode *inode)
{
        struct ldiskfs_iloc iloc;
        struct ldiskfs_sb_info *sbi = LDISKFS_SB(inode-&amp;gt;i_sb);
        static unsigned int mnt_count;
        int err, ret;

        might_sleep();
        trace_ldiskfs_mark_inode_dirty(inode, _RET_IP_);
        err = ldiskfs_reserve_inode_write(handle, inode, &amp;amp;iloc);
        if (ldiskfs_handle_valid(handle) &amp;amp;&amp;amp;
            LDISKFS_I(inode)-&amp;gt;i_extra_isize &amp;lt; sbi-&amp;gt;s_want_extra_isize &amp;amp;&amp;amp;
            !ldiskfs_test_inode_state(inode, LDISKFS_STATE_NO_EXPAND)) {
                /*
                 * We need extra buffer credits since we may write into EA block
                 * with this same handle. If journal_extend fails, then it will
                 * only result in a minor loss of functionality for that inode.
                 * If this is felt to be critical, then e2fsck should be run to
                 * force a large enough s_min_extra_isize.
                 */
                if ((jbd2_journal_extend(handle,
                             LDISKFS_DATA_TRANS_BLOCKS(inode-&amp;gt;i_sb))) == 0) {
                        ret = ldiskfs_expand_extra_isize(inode,
                                                      sbi-&amp;gt;s_want_extra_isize,
                                                      iloc, handle);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Means the async OST_SETATTR RPC trigger ldiskfs_expand_extra_isize(). Such function will enlarge the on-disk inode, and move the EA afterward. On the other hand, the 2.9 image does not support PFL, means the PFID EA and LMA are separated, then such EA moving caused the PFID EA cannot be held inside inode body, and has to be moved to separated block. That is why you saw &quot;File ACL:&quot; is assigned.&lt;/p&gt;</comment>
                            <comment id="193741" author="yong.fan" created="Thu, 27 Apr 2017 08:04:43 +0000"  >&lt;p&gt;One possible solution is to remake the MDT image in disk2_9-ldiskfs.tar.bz2 to cleanup the pending operations (technical debt of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9207&quot; title=&quot;Create new conf-sanity test_32 disk images &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9207&quot;&gt;&lt;del&gt;LU-9207&lt;/del&gt;&lt;/a&gt;). That will make conf-sanity test_32b pass Maloo tests. But it seems not a perfect solution. Because for the real upgrade case from Lustre-2.9 to Lustre-2.10, anytime when we modify the existing OST-object, it will cause the ldiskfs to extend inode and allocate new block for PFID EA. That will affect both the disk space and the performance. Maybe we should enhance OI scrub on the OST to merge PFID EA and LMA EA.&lt;/p&gt;

&lt;p&gt;Andreas, how do you think?&lt;/p&gt;</comment>
                            <comment id="194699" author="eberglan" created="Fri, 5 May 2017 16:23:41 +0000"  >&lt;p&gt;In talking with Andreas issues exposes a significant performance issue for anyone upgrading their file system to PFL, issue needs to be addressed&lt;/p&gt;</comment>
                            <comment id="194706" author="adilger" created="Fri, 5 May 2017 16:55:13 +0000"  >&lt;p&gt;Fan Yong, I agree that this is a pretty serious problem if all of the existing inodes will bump the xattrs to an external block. We need to be 100% sure whether this is caused by the call to ldiskfs_expand_extra_isize() or later osd-ldiskfs changes to store the extra stripe/component data on the OST object in order to make the correct fix. &lt;/p&gt;

&lt;p&gt;I think there are a few different possible solutions:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;fix ldiskfs to expand the inode properly rather than push the xattrs out of the inode if that is not needed. According to your earlier comments, there &lt;em&gt;should&lt;/em&gt; be enough space in the inode even with separate lma/fid xattrs when the project quota field is added. This is something that could even be pushed upstream since this may affect other users.&lt;/li&gt;
	&lt;li&gt;fix ldiskfs so that it doesn&apos;t expand the inode if project quota is not enabled if it would cause an xattr to be pushed out of the inode. This could likely also go upstream. I don&apos;t expect project quota will be used immediately by many users.&lt;/li&gt;
	&lt;li&gt;change osd-ldiskfs to avoid storing the extra loa component fields if they are zero (i.e. PFL is not in use). This would mean LFSCK doesn&apos;t work fully for composite files, but this shouldn&apos;t affect existing files anyway since they are not composite files (at least not until FLR adds components to existing plain files)&lt;/li&gt;
	&lt;li&gt;fix LFSCK to merge the lma/fid xattrs on any files on the OST with en external lma/fid if it would fit into the inode space. That won&apos;t really be needed if we can avoid it happening in the first place with the previous two fixes, so I&apos;d rather avoid this if it isn&apos;t needed.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="194841" author="yong.fan" created="Mon, 8 May 2017 16:38:57 +0000"  >&lt;p&gt;It is verified that the ldiskfs_expand_extra_isize_ea() logic is wrong. The original expectation is that such function will move the inode inline EA 4-bytes (32 - 28) afterward. But it handles the input parameter @new_extra_isize as the isize diff directly. Means it tries to move 32 bytes afterward. There is not inode inline enough, so it allocates another EA block, as to the block used by the inode is increased. That is what we observed as described above. I will make ldiskfs patch to fix it.&lt;/p&gt;</comment>
                            <comment id="194842" author="gerrit" created="Mon, 8 May 2017 16:39:33 +0000"  >&lt;p&gt;Fan Yong (fan.yong@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/26989&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26989&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: handle ldiskfs_expand_extra_isize_ea properly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 74fe1ec2f9736bc3f526df83df4f27bb525dbdf7&lt;/p&gt;</comment>
                            <comment id="194844" author="bogl" created="Mon, 8 May 2017 17:05:04 +0000"  >&lt;p&gt;I only see fixes here for el7.  what about el6, sles11, sles12?&lt;/p&gt;</comment>
                            <comment id="194846" author="yong.fan" created="Mon, 8 May 2017 17:08:22 +0000"  >&lt;p&gt;project quota is only supported on el7.&lt;br/&gt;
Project quota caused the isize changes.&lt;/p&gt;</comment>
                            <comment id="195057" author="adilger" created="Tue, 9 May 2017 07:32:35 +0000"  >&lt;p&gt;I found that this problem has been fixed in the upstream kernel with the following patches:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;commit d0141191a20289f8955c1e03dad08e42e6f71ca9 &quot;ext4: fix xattr shifting when expanding inodes&quot;
commit 418c12d08dc64a45107c467ec1ba29b5e69b0715 &quot;ext4: fix xattr shifting when expanding inodes part 2&quot;
commit 443a8c41cd49de66a3fda45b32b9860ea0292b84 &quot;ext4: properly align shifted xattrs when expanding inodes&quot;
commit 2e81a4eeedcaa66e35f58b81e0755b87057ce392 &quot;ext4: avoid deadlock when expanding inode size&quot;
commit e3014d14a81edde488d9a6758eea8afc41752d2d &quot;ext4: fixup free space calculations when expanding inodes&quot;
commit 94405713889d4a9d341b4ad92956e4e2ec8ec2c2 &quot;ext4: replace bogus assertion in ext4_xattr_shift_entries()&quot;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It looks like there are a number of problems with this code that need to be fixed.  They were landed in kernels 4.8 and 4.9.&lt;/p&gt;</comment>
                            <comment id="195058" author="adilger" created="Tue, 9 May 2017 07:59:31 +0000"  >&lt;p&gt;Yang Sheng, could you please port the referenced patches to RHEL7.  &lt;/p&gt;</comment>
                            <comment id="195302" author="gerrit" created="Wed, 10 May 2017 17:32:38 +0000"  >&lt;p&gt;Yang Sheng (yang.sheng@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/27045&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27045&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: port upstream patches for project quota&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 9b176c0082380ff0f209bfe95aeef61ce76a4789&lt;/p&gt;</comment>
                            <comment id="195303" author="ys" created="Wed, 10 May 2017 17:36:57 +0000"  >&lt;p&gt;Patch commit 2e81a4eeedcaa66e35f58b81e0755b87057ce392 &quot;ext4: avoid deadlock when expanding inode size&quot;&lt;br/&gt;
Already has included since &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9146&quot; title=&quot;Backport patches from upstream to resolve deadlock in xattr&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9146&quot;&gt;&lt;del&gt;LU-9146&lt;/del&gt;&lt;/a&gt;. So we just need porting 5 patches.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
YangSheng&lt;/p&gt;</comment>
                            <comment id="196546" author="gerrit" created="Sat, 20 May 2017 18:44:10 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/27045/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27045/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: port upstream patches for changing extra isize&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 10283bfb35cff9980fc7a3f83f39007a22b21d0c&lt;/p&gt;</comment>
                            <comment id="196556" author="pjones" created="Sat, 20 May 2017 19:24:46 +0000"  >&lt;p&gt;Landed for 2.10&lt;/p&gt;</comment>
                            <comment id="196703" author="gerrit" created="Tue, 23 May 2017 03:58:16 +0000"  >&lt;p&gt;Yang Sheng (yang.sheng@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/27244&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27244&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: port extra isize patches to sles12sp2&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: fbbfe2cb89578b6b39f102cabc24387f050c6462&lt;/p&gt;</comment>
                            <comment id="196929" author="jamesanunez" created="Wed, 24 May 2017 16:22:25 +0000"  >&lt;p&gt;Reopening since there is another patch outstanding for SLES12SP2. We also need to add back the 2.9 disk image upgrade to 2.10 that was removed in &lt;a href=&quot;https://review.whamcloud.com/26789&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/26789&lt;/a&gt; .&lt;/p&gt;</comment>
                            <comment id="197014" author="gerrit" created="Thu, 25 May 2017 04:19:33 +0000"  >&lt;p&gt;Yang Sheng (yang.sheng@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/27285&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27285&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: extra patch for changing extra isize&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 808356d5e5f4c141dac81672ed0d201bac8b0d20&lt;/p&gt;</comment>
                            <comment id="197129" author="gerrit" created="Thu, 25 May 2017 21:56:40 +0000"  >&lt;p&gt;James Nunez (james.a.nunez@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/27295&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27295&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; tests: restore 2.9 filesystem images on 2.10&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d9346e24627933aefb34feb3a4e681eff033ef6d&lt;/p&gt;</comment>
                            <comment id="198004" author="gerrit" created="Sat, 3 Jun 2017 03:56:41 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/27244/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27244/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: port extra isize patches to sles12sp2&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 01d7ddd0edc1517b05136cb36314d7a39dbfeff3&lt;/p&gt;</comment>
                            <comment id="198006" author="gerrit" created="Sat, 3 Jun 2017 03:57:00 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/27285/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27285/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; ldiskfs: extra patch for changing extra isize&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 06159785986aef19a06a69d02b7f203fc98b377a&lt;/p&gt;</comment>
                            <comment id="198522" author="gerrit" created="Wed, 7 Jun 2017 20:30:38 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/27295/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27295/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9384&quot; title=&quot;conf-sanity test 32b fails with &amp;#39;list verification failed &amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9384&quot;&gt;&lt;del&gt;LU-9384&lt;/del&gt;&lt;/a&gt; tests: restore 2.9 filesystem images on 2.10&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 50d6943184322b56d7f2243930b035d2a7c37e1e&lt;/p&gt;</comment>
                            <comment id="198549" author="pjones" created="Wed, 7 Jun 2017 20:56:47 +0000"  >&lt;p&gt;Landed for 2.10&lt;/p&gt;</comment>
                            <comment id="200112" author="chunteraa" created="Fri, 23 Jun 2017 19:43:57 +0000"  >&lt;p&gt;To confirm my understanding&lt;br/&gt;
Let say I have an OST formatted with el6 kernel (2.6.32) using lustre 2.5 that has 256b inodes where dumpe2fs report extra isize is 28 &lt;br/&gt;
eg)&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;##### Command: dumpe2fs -h /dev/mapper/dtemp_ost0077 ##########################################
Filesystem volume name:   dtemp-OST004d
..
Filesystem created:       Tue Oct 20 21:02:29 2015
...
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If I mount the OST on host with kernel (eg. 3.10.0) that is patched with project quotas, it will cause additional xattr block to be allocated (ie. call _expand_extra_isize()) for OST inodes since the newer patched kernel expects extra isize=32b. The additional xattr block per inode may cause a performance problem.  Additionally there are bugs in the upstream code that migrates inodes xattrs to the new block (eg. &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9146&quot; title=&quot;Backport patches from upstream to resolve deadlock in xattr&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9146&quot;&gt;&lt;del&gt;LU-9146&lt;/del&gt;&lt;/a&gt;) so we need backport some upstream kernel patches. &lt;br/&gt;
Alternative is the ldiskfs patches here that will accommodate new xattrs for PFL &amp;amp; project quotas (within the 256b inode size) without requiring allocation of a new xattr block.&lt;/p&gt;
</comment>
                            <comment id="200125" author="adilger" created="Sat, 24 Jun 2017 05:59:59 +0000"  >&lt;p&gt;There shouldn&apos;t really be a need to have an external xattr block, even with project quota enabled. There is just a bug in the xattr relocation code that pushes the xattr out of the j ode when it isn&apos;t really needed. We&apos;ve backported patches to fix this. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="45517">LU-9349</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="44701">LU-9207</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzzawn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>