<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:39:35 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-4092] mdt_attr_set should acquire layout lock in some cases</title>
                <link>https://jira.whamcloud.com/browse/LU-4092</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When changing file ownership mdt_attr_set() should add MDS_INODELOCK_LAYOUT to the ibits (MDS_INODELOCK_UPDATE or MDS_INODELOCK_UPDATE | MDS_INODELOCK_LOOKUP | MDS_INODELOCK_PERM). Semantically it only needs a PR layout lock but I believe that acquiring two separate locks on an object in the same handler is a bad idea.&lt;/p&gt;</description>
                <environment></environment>
        <key id="21373">LU-4092</key>
            <summary>mdt_attr_set should acquire layout lock in some cases</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="wc-triage">WC Triage</assignee>
                                    <reporter username="jhammond">John Hammond</reporter>
                        <labels>
                            <label>mdt</label>
                    </labels>
                <created>Fri, 11 Oct 2013 16:14:33 +0000</created>
                <updated>Fri, 11 Oct 2013 16:48:02 +0000</updated>
                                            <version>Lustre 2.5.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="68839" author="green" created="Fri, 11 Oct 2013 16:25:27 +0000"  >&lt;p&gt;I do not understand why would we want a layout lock taken for setattr, can you please elaborate on this?&lt;/p&gt;</comment>
                            <comment id="68844" author="jhammond" created="Fri, 11 Oct 2013 16:48:02 +0000"  >&lt;p&gt;Ownership changes are declared and performed on all subobjects in LOD:&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;static int lod_declare_attr_set(const struct lu_env *env,
                                struct dt_object *dt,
                                const struct lu_attr *attr,
                                struct thandle *handle)
        struct dt_object  *next = dt_object_child(dt);
        struct lod_object *lo = lod_dt_obj(dt);
        int                rc, i;
        ENTRY;

        /*
         * declare setattr on the local object
         */
        rc = dt_declare_attr_set(env, next, attr, handle);
        if (rc)
                RETURN(rc);

        /* osp_declare_attr_set() ignores all attributes other than                    
         * UID, GID, and size, and osp_attr_set() ignores all but UID                  
         * and GID.  Declaration of size attr setting happens through                  
         * lod_declare_init_size(), and not through this function.                     
         * Therefore we need not load striping unless ownership is                     
         * changing.  This should save memory and (we hope) speed up                   
         * rename(). */
        if (!(attr-&amp;gt;la_valid &amp;amp; (LA_UID | LA_GID)))
                RETURN(rc);

        /*                                                                             
         * load striping information, notice we don&apos;t do this when object              
         * is being initialized as we don&apos;t need this information till                 
         * few specific cases like destroy, chown                                      
         */
        rc = lod_load_striping(env, lo);
        if (rc)
                RETURN(rc);

        /*                                                                             
         * if object is striped declare changes on the stripes                         
         */
        LASSERT(lo-&amp;gt;ldo_stripe || lo-&amp;gt;ldo_stripenr == 0);
        for (i = 0; i &amp;lt; lo-&amp;gt;ldo_stripenr; i++) {
                LASSERT(lo-&amp;gt;ldo_stripe[i]);
                rc = dt_declare_attr_set(env, lo-&amp;gt;ldo_stripe[i], attr, handle);
                if (rc) {
                        CERROR(&quot;failed declaration: %d\n&quot;, rc);
                        break;
                }
        }

        RETURN(rc);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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|hzw5ev:</customfieldvalue>

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