<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:13:26 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-7964] tracking whether there is a direct application usage of regular file LL_IOC_LOV_GETSTRIPE ioctl interface</title>
                <link>https://jira.whamcloud.com/browse/LU-7964</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Lustre liblustreapi does not use the regular file&apos;s getstripe interface, I&apos;m thinking that we could get rid of the interface. And this ticket is for tracking whether there is any application uses this interface.&lt;/p&gt;</description>
                <environment></environment>
        <key id="35745">LU-7964</key>
            <summary>tracking whether there is a direct application usage of regular file LL_IOC_LOV_GETSTRIPE ioctl interface</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="bobijam">Zhenyu Xu</assignee>
                                    <reporter username="bobijam">Zhenyu Xu</reporter>
                        <labels>
                    </labels>
                <created>Thu, 31 Mar 2016 08:55:13 +0000</created>
                <updated>Thu, 31 Oct 2019 05:18:41 +0000</updated>
                            <resolved>Thu, 31 Oct 2019 05:18:41 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="147422" author="gerrit" created="Thu, 31 Mar 2016 09:05:38 +0000"  >&lt;p&gt;Bobi Jam (bobijam@hotmail.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/19257&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/19257&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7964&quot; title=&quot;tracking whether there is a direct application usage of regular file LL_IOC_LOV_GETSTRIPE ioctl interface&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7964&quot;&gt;&lt;del&gt;LU-7964&lt;/del&gt;&lt;/a&gt; llite: add a deprecation console message&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 18c080edeef315b49f465f1f1fc47d5eb8a1f0d8&lt;/p&gt;</comment>
                            <comment id="147527" author="bobijam" created="Fri, 1 Apr 2016 01:39:10 +0000"  >&lt;p&gt;no, this does not change the liblustre APIs&lt;/p&gt;</comment>
                            <comment id="147572" author="rread" created="Fri, 1 Apr 2016 14:13:03 +0000"  >&lt;p&gt;What is difference between LL_IOC_LOV_GETSTRIPE and IOC_MDC_GETFILESTRIPE?  &lt;/p&gt;</comment>
                            <comment id="147601" author="bobijam" created="Fri, 1 Apr 2016 17:10:15 +0000"  >&lt;p&gt;According to the code, LL_IOC_LOV_GETSTRIPE is act upon the opened file handle, and IOC_MDC_GETFILESTRIPE is upon the parent fd, and the filename of interest is passed in the user buffer.&lt;/p&gt;</comment>
                            <comment id="147607" author="rread" created="Fri, 1 Apr 2016 17:24:34 +0000"  >&lt;p&gt;It seems both are useful then, just for different use cases. I would agree that LL_IOC_LOV_GETSTRIPE is redundant with the lustre.lov extended attribute, except there is bug LDEV-310 which means  lustre.lov incorrect for released files.  Could we fix that one first before removing this, and then applications can read EA instead? &lt;/p&gt;</comment>
                            <comment id="147616" author="simmonsja" created="Fri, 1 Apr 2016 17:52:21 +0000"  >&lt;p&gt;At one time I looked to moving lfs &lt;span class=&quot;error&quot;&gt;&amp;#91;s|g&amp;#93;&lt;/span&gt;etstripe to the layout api but I found problem which prevented this. See &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2809&quot; title=&quot;fix ll_setxattr() to always ignore ll_stripe_offset&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2809&quot;&gt;&lt;del&gt;LU-2809&lt;/del&gt;&lt;/a&gt; for details.&lt;/p&gt;</comment>
                            <comment id="147652" author="rread" created="Fri, 1 Apr 2016 21:18:46 +0000"  >&lt;p&gt;That&apos;s interesting, so since there is an actual difference between the xattr and ioctl, then it seems it may be worth keeping this one around until at least lov_user_md_v4 appears and we have parity between xattr and ioctl.&lt;/p&gt;

&lt;p&gt;BTW, the issue I reported in LDEV-310 is stripe_count is 0 in xattr for a released file, but is still set when using ioctl. I suspect that is a bug and not intentional like &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2809&quot; title=&quot;fix ll_setxattr() to always ignore ll_stripe_offset&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2809&quot;&gt;&lt;del&gt;LU-2809&lt;/del&gt;&lt;/a&gt;, but I haven&apos;t tracked it down.  Oh, and I&apos;m assuming/hoping that being 0 in xattr is the bug, not the other way around. &lt;/p&gt;
</comment>
                            <comment id="196268" author="adilger" created="Wed, 17 May 2017 23:33:58 +0000"  >&lt;p&gt;One important application that is using &lt;tt&gt;LL_IOC_LOV_GETSTRIPE&lt;/tt&gt; is the MPI-IO library&apos;s ADIO Lustre driver, in order to determine optimal file layout for collective IO across multiple clients.  Sadly, it is dereferencing the returned struct directly without checking the &lt;tt&gt;lmm_magic&lt;/tt&gt; to see if the returned struct is even something it understands.  It should have stopped using direct ioctl() access ages ago, and moved over to &lt;tt&gt;llapi_layout_get_by_path()&lt;/tt&gt; to extract the stripe count and such.&lt;/p&gt;</comment>
                            <comment id="213491" author="adilger" created="Sat, 11 Nov 2017 02:40:58 +0000"  >&lt;p&gt;I see in recent testing that &lt;tt&gt;LL_IOC_LOV_GETSTRIPE&lt;/tt&gt; is still being used, even by code in the Lustre tree itself, since it is triggering the error message on the console:&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;lfs: using old ioctl(LL_IOC_LOV_GETSTRIPE) on [0x2000061c2:0x24:0x0], use llapi_layout_get_by_path()
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; cb_getstripe(&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; *path, DIR *parent, DIR **dirp, void *data,
                        struct dirent64 *de)
{
        struct find_param *param = (struct find_param *)data;
        DIR *d = dirp == NULL ? NULL : *dirp;
        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; ret = 0;
:
:                       
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (d) {
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (param-&amp;gt;fp_get_lmv || param-&amp;gt;fp_get_default_lmv) {
                        ret = cb_get_dirstripe(path, d, param);
                } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
                        ret = ioctl(dirfd(d), LL_IOC_LOV_GETSTRIPE,
                                     (void *)&amp;amp;param-&amp;gt;fp_lmd-&amp;gt;lmd_lmm);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="257389" author="adilger" created="Thu, 31 Oct 2019 05:18:41 +0000"  >&lt;p&gt;Won&apos;t deprecate this interface for now.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="46031">LU-9490</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|hzy6gf:</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>