<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:56:08 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-5976] Remove quota compatibility with Lustre 1.8</title>
                <link>https://jira.whamcloud.com/browse/LU-5976</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;In Lustre 2.8, tag 2.7.53 and above, we drop compatibility with the old quota struct used in Lustre 1.8. If it is not desirable to drop quota compatibility with Lustre 1.8, the following code and structures should be modified, else the code can be removed.&lt;/p&gt;

&lt;p&gt;In file lustre/llite/dir.c,  ll_dir_ioctl():&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;#if LUSTRE_VERSION_CODE &amp;lt; OBD_OCD_VERSION(2, 7, 53, 0)
        case LL_IOC_QUOTACTL_18: {
                /* copy the old 1.x quota struct for internal use, then copy
                 * back into old format struct.  For 1.8 compatibility. */
               struct if_quotactl_18 *qctl_18;
                struct if_quotactl *qctl_20;

                OBD_ALLOC_PTR(qctl_18);
                if (!qctl_18)
                        RETURN(-ENOMEM);

                OBD_ALLOC_PTR(qctl_20);
                if (!qctl_20)
                        GOTO(out_quotactl_18, rc = -ENOMEM);

		if (copy_from_user(qctl_18, (void *)arg, sizeof(*qctl_18)))
                        GOTO(out_quotactl_20, rc = -ENOMEM);

                QCTL_COPY(qctl_20, qctl_18);
                qctl_20-&amp;gt;qc_idx = 0;

                /* XXX: dqb_valid was borrowed as a flag to mark that
                 *      only mds quota is wanted */
                if (qctl_18-&amp;gt;qc_cmd == Q_GETQUOTA &amp;amp;&amp;amp;
                    qctl_18-&amp;gt;qc_dqblk.dqb_valid) {
                        qctl_20-&amp;gt;qc_valid = QC_MDTIDX;
                        qctl_20-&amp;gt;qc_dqblk.dqb_valid = 0;
                } else if (qctl_18-&amp;gt;obd_uuid.uuid[0] != &apos;\0&apos;) {
                        qctl_20-&amp;gt;qc_valid = QC_UUID;
                        qctl_20-&amp;gt;obd_uuid = qctl_18-&amp;gt;obd_uuid;
                } else {
                        qctl_20-&amp;gt;qc_valid = QC_GENERAL;
                }

                rc = quotactl_ioctl(sbi, qctl_20);

                if (rc == 0) {
                        QCTL_COPY(qctl_18, qctl_20);
                        qctl_18-&amp;gt;obd_uuid = qctl_20-&amp;gt;obd_uuid;

			if (copy_to_user((void *)arg, qctl_18,
                                             sizeof(*qctl_18)))
                                rc = -EFAULT;
                }

        out_quotactl_20:
                OBD_FREE_PTR(qctl_20);
        out_quotactl_18:
                OBD_FREE_PTR(qctl_18);
                RETURN(rc);
        }
#endif /* LUSTRE_VERSION_CODE &amp;lt; OBD_OCD_VERSION(2, 7, 53, 0) */
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In file lustre/llite/llite_internal.h, in the definition of struct if_quotacl_18:&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;#if LUSTRE_VERSION_CODE &amp;lt; OBD_OCD_VERSION(2, 7, 53, 0)
/* Compatibility for old (1.8) compiled userspace quota code */
struct if_quotactl_18 {
	__u32			qc_cmd;
	__u32			qc_type;
	__u32			qc_id;
	__u32			qc_stat;
	struct obd_dqinfo	qc_dqinfo;
	struct obd_dqblk	qc_dqblk;
	char			obd_type[16];
	struct obd_uuid		obd_uuid;
};
#define LL_IOC_QUOTACTL_18              _IOWR(&apos;f&apos;, 162, struct if_quotactl_18 *)
/* End compatibility for old (1.8) compiled userspace quota code */
#endif /* LUSTRE_VERSION_CODE &amp;lt; OBD_OCD_VERSION(2, 7, 53, 0) */
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="27783">LU-5976</key>
            <summary>Remove quota compatibility with Lustre 1.8</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="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="3">Duplicate</resolution>
                                        <assignee username="niu">Niu Yawei</assignee>
                                    <reporter username="jamesanunez">James Nunez</reporter>
                        <labels>
                            <label>quota</label>
                    </labels>
                <created>Wed, 3 Dec 2014 23:24:04 +0000</created>
                <updated>Tue, 11 Aug 2015 01:46:45 +0000</updated>
                            <resolved>Tue, 11 Aug 2015 01:46:45 +0000</resolved>
                                    <version>Lustre 2.8.0</version>
                                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="123760" author="pjones" created="Mon, 10 Aug 2015 17:54:47 +0000"  >&lt;p&gt;Niu&lt;/p&gt;

&lt;p&gt;Did you already handle this under &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6617&quot; title=&quot;Remove quota migration code&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6617&quot;&gt;&lt;del&gt;LU-6617&lt;/del&gt;&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="123806" author="niu" created="Tue, 11 Aug 2015 01:46:45 +0000"  >&lt;p&gt;Yes, it was fixed in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6617&quot; title=&quot;Remove quota migration code&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6617&quot;&gt;&lt;del&gt;LU-6617&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="30227">LU-6617</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11403">LU-540</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|hzx1u7:</customfieldvalue>

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