<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:21:01 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-15754] Let lfsck skip inode if iget() returns ENOMEM</title>
                <link>https://jira.whamcloud.com/browse/LU-15754</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;After this change&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;
commit c2b6d621c4ffe9936adf7a55c8b1c769672c306f
Author: Al Viro &amp;lt;viro@zeniv.linux.org.uk&amp;gt;
Date: &#160; Thu Jun 28 15:53:17 2018 -0400&#160; &#160; &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; primitive: discard_new_inode()
&#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; We don&apos;t want open-by-handle picking half-set-up in-core
&#160; &#160; struct inode from e.g. mkdir() having failed halfway through.
&#160; &#160; In other words, we don&apos;t want such inodes returned by iget_locked()
&#160; &#160; on their way to extinction. &#160;However, we can&apos;t just have them
&#160; &#160; unhashed - otherwise open-by-handle immediately *after* that would&apos;ve
&#160; &#160; ended up creating a &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; in-core inode over the on-disk one that
&#160; &#160; is in process of being freed right under us.
&#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; Solution: &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; flag (I_CREATING) set by insert_inode_locked() and
&#160; &#160; removed by unlock_new_inode() and a &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; primitive (discard_new_inode())
&#160; &#160; to be used by such halfway-through-setup failure exits instead of
&#160; &#160; unlock_new_inode() / iput() combinations. &#160;That primitive unlocks &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt;
&#160; &#160; inode, but leaves I_CREATING in place.
&#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; iget_locked() treats finding an I_CREATING inode as failure
&#160; &#160; (-ESTALE, once we sort out the error propagation).
&#160; &#160; &#160; &#160; &#160; &#160; insert_inode_locked() treats the same as instant -EBUSY.
&#160; &#160; &#160; &#160; &#160; &#160; ilookup() treats those as icache miss.
&#160; &#160;&#160;
&#160; &#160; [Fix by Dan Carpenter &amp;lt;dan.carpenter@oracle.com&amp;gt; folded in]
&#160; &#160;&#160;
&#160; &#160; Signed-off-by: Al Viro &amp;lt;viro@zeniv.linux.org.uk&amp;gt; &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;find_inode_fast() returns -ESTALE, but iget_locked() replaces it to the NULL and finally ldiskfs_inode_attach_jinode() returns -ENOMEM.&lt;/p&gt;

&lt;p&gt;So this check in osd_iit_iget() doesn&apos;t work.&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;
  /* The inode may be removed after bitmap searching, or the
&#160;&#160; * file is &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; created without inode initialized yet.
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (rc == -ENOENT || rc == -ESTALE)
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; RETURN(SCRUB_NEXT_CONTINUE); &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;As a solution we can skip an inode if -ENOMEM returned or fix this in the kernel code somehow.&lt;/p&gt;</description>
                <environment></environment>
        <key id="69782">LU-15754</key>
            <summary>Let lfsck skip inode if iget() returns ENOMEM</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="artem_blagodarenko">Artem Blagodarenko</assignee>
                                    <reporter username="artem_blagodarenko">Artem Blagodarenko</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Mon, 18 Apr 2022 09:56:00 +0000</created>
                <updated>Mon, 6 Jun 2022 13:31:44 +0000</updated>
                            <resolved>Mon, 6 Jun 2022 13:31:44 +0000</resolved>
                                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="332216" author="gerrit" created="Mon, 18 Apr 2022 13:30:21 +0000"  >&lt;p&gt;&quot;Artem Blagodarenko &amp;lt;artem.blagodarenko@hpe.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/47079&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/47079&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15754&quot; title=&quot;Let lfsck skip inode if iget() returns ENOMEM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15754&quot;&gt;&lt;del&gt;LU-15754&lt;/del&gt;&lt;/a&gt; lfsck: skip an inode if iget() returns -ENOMEM&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2784fab626f3480d2df75e6182fd5448ba7e7d92&lt;/p&gt;</comment>
                            <comment id="336788" author="gerrit" created="Mon, 6 Jun 2022 06:27:40 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/47079/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/47079/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15754&quot; title=&quot;Let lfsck skip inode if iget() returns ENOMEM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15754&quot;&gt;&lt;del&gt;LU-15754&lt;/del&gt;&lt;/a&gt; lfsck: skip an inode if iget() returns -ENOMEM&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 9523e99046b9d03ab1e5b75622e1f80e02fcc8e9&lt;/p&gt;</comment>
                            <comment id="336821" author="pjones" created="Mon, 6 Jun 2022 13:31:44 +0000"  >&lt;p&gt;Landed for 2.16&lt;/p&gt;</comment>
                    </comments>
                    <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|i02n9b:</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>