<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:59:00 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-6297] Move rename is_subdir check from MDD to MDT</title>
                <link>https://jira.whamcloud.com/browse/LU-6297</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Move rename is_subdir check (mdo_is_subdir) from MDD to MDT to avoid duplicate lu object find for the same fid, which might cause lu_obect_find() hang.&lt;/p&gt;</description>
                <environment></environment>
        <key id="28865">LU-6297</key>
            <summary>Move rename is_subdir check from MDD to MDT</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="laisiyao">Lai Siyao</assignee>
                                    <reporter username="di.wang">Di Wang</reporter>
                        <labels>
                            <label>dne2</label>
                            <label>dne3</label>
                    </labels>
                <created>Thu, 26 Feb 2015 04:11:00 +0000</created>
                <updated>Tue, 18 Oct 2022 17:44:56 +0000</updated>
                                            <version>Lustre 2.8.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="108059" author="bzzz" created="Thu, 26 Feb 2015 04:44:03 +0000"  >&lt;p&gt;can you please describe the exact sequence?&lt;/p&gt;</comment>
                            <comment id="108076" author="di.wang" created="Thu, 26 Feb 2015 09:21:33 +0000"  >&lt;p&gt;oh, mostly this is because mdt_is_subdir is being called multiple times during rename, which can be avoided if we move subdir check to MDT.  And also&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;   mnew = mdt_object_find(info-&amp;gt;mti_env, info-&amp;gt;mti_mdt, new_fid);
                if (IS_ERR(mnew))
                        GOTO(out_put_old, rc = PTR_ERR(mnew));

                /* Before locking the target dir, check we do not replace
                 * a dir with a non-dir, otherwise it may deadlock with
                 * link op which tries to create a link in this dir
                 * back to this non-dir. */
                if (S_ISDIR(lu_object_attr(&amp;amp;mnew-&amp;gt;mot_obj)) &amp;amp;&amp;amp;
                    !S_ISDIR(lu_object_attr(&amp;amp;mold-&amp;gt;mot_obj)))
                        GOTO(out_put_new, rc = -EISDIR);

                lh_oldp = &amp;amp;info-&amp;gt;mti_lh[MDT_LH_OLD];
                mdt_lock_reg_init(lh_oldp, LCK_EX);
                rc = mdt_object_lock(info, mold, lh_oldp, MDS_INODELOCK_LOOKUP |
                                     MDS_INODELOCK_XATTR);
                if (rc != 0)
                        GOTO(out_put_new, rc);

                /* Check if @msrcdir is subdir of @mnew, before locking child
                 * to avoid reverse locking. */
                rc = mdt_is_subdir(info, msrcdir, new_fid);    &amp;lt;---- new obj might be found again here.
                if (rc)
                        GOTO(out_unlock_old, rc);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="108077" author="di.wang" created="Thu, 26 Feb 2015 09:22:38 +0000"  >&lt;p&gt;hmm, seems for old fid as well&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;       mold = mdt_object_find(info-&amp;gt;mti_env, info-&amp;gt;mti_mdt, old_fid);
        if (IS_ERR(mold))
                GOTO(out_unlock_parents, rc = PTR_ERR(mold));

        /* Check if @mtgtdir is subdir of @mold, before locking child
         * to avoid reverse locking. */
        rc = mdt_is_subdir(info, mtgtdir, old_fid);
        if (rc)
                GOTO(out_put_old, rc);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="109296" author="di.wang" created="Tue, 10 Mar 2015 03:36:19 +0000"  >&lt;p&gt;This is not urgent, but probably need it for final racer pass. Please only work on it if you have extra time. Thanks&lt;/p&gt;</comment>
                            <comment id="109302" author="bzzz" created="Tue, 10 Mar 2015 06:01:50 +0000"  >&lt;p&gt;well, if _is_subdir() is called with LDLM lock held and we checked the passed object does exists, then how deadlock is possible - all &quot;parents&quot; must exist by definition?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="52601">LU-11104</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="19630">LU-3534</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="31033">LU-6831</issuekey>
        </issuelink>
                            </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|hzx767:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>17632</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>