<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:48:14 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-5065] lfs should dogfood llapi</title>
                <link>https://jira.whamcloud.com/browse/LU-5065</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;As a means to improving/maintaining the usability of llapi (the library defined by lustre/include/lustre/lustreapi.h) I propose that lustre/utils/lfs.c be allowed only to depend on that header and other non-Lustre, non-libcfs, non-lnet headers. This will help us to ensure that the definitions needed to properly use the functions/functionality exported in by llapi are also present. This will require us moving some definitions from lustre_idl.h to lustre_user.h. (I would prefer that llapi properly encapsulate the lustre ioctls and that the contents of lustre_user.h not be exposed via lustreapi.h but proposal to move us in this direction met with disapproval, see the discussion on &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5011&quot; title=&quot;lustre_idl.h again does not compile in user space&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5011&quot;&gt;&lt;del&gt;LU-5011&lt;/del&gt;&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;Currently lfs depends on the following headers:&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;&lt;span class=&quot;code-comment&quot;&gt;/* For dirname() */&lt;/span&gt;
#include &amp;lt;libgen.h&amp;gt;

#include &amp;lt;lnet/lnetctl.h&amp;gt;

#include &amp;lt;libcfs/libcfs.h&amp;gt;
#include &amp;lt;lustre/lustre_idl.h&amp;gt;
#include &amp;lt;lustre/lustreapi.h&amp;gt;

#include &amp;lt;libcfs/libcfsutil.h&amp;gt;
#include &lt;span class=&quot;code-quote&quot;&gt;&quot;obdctl.h&quot;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here are some goals for people to complain about:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Move everything in lustre_idl.h that is needed to build lfs to lustre_user.h.&lt;/li&gt;
	&lt;li&gt;Add the following gem to the end of lfs.c:
&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;#ifdef _LUSTRE_IDL_H_
# error &lt;span class=&quot;code-quote&quot;&gt;&quot;lfs should not include lustre_idl.h&quot;&lt;/span&gt;
#endif
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
	&lt;li&gt;Add similar preprocessor trickery to ensure that we&apos;re not depending on config.h.&lt;/li&gt;
	&lt;li&gt;Remove libcfsutil.h. Does anyone actually use the interactive mode of lfs? I&apos;ve only done so by accident.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;lfs also does some mystery cruft with ptl_initialize(), obd_initialize(), obd_finalize() which I believe is only to support llapi_ping_target(). Perhaps this could be moved to lctl, or into llapi, or rewritten to use /proc (or /sys), or deleted entirely. Can anyone offer a convincing explanation as to why users should (be allowed to) ping targets in the first place?&lt;/p&gt;</description>
                <environment></environment>
        <key id="24726">LU-5065</key>
            <summary>lfs should dogfood llapi</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="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="jhammond">John Hammond</assignee>
                                    <reporter username="jhammond">John Hammond</reporter>
                        <labels>
                            <label>lfs</label>
                            <label>llapi</label>
                    </labels>
                <created>Thu, 15 May 2014 12:28:12 +0000</created>
                <updated>Tue, 3 Jun 2014 07:02:54 +0000</updated>
                            <resolved>Tue, 3 Jun 2014 07:02:44 +0000</resolved>
                                    <version>Lustre 2.6.0</version>
                                    <fixVersion>Lustre 2.6.0</fixVersion>
                                        <due></due>
                            <votes>1</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="84160" author="jhammond" created="Thu, 15 May 2014 12:44:23 +0000"  >&lt;p&gt;Please see &lt;a href=&quot;http://review.whamcloud.com/10336&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/10336&lt;/a&gt; &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5065&quot; title=&quot;lfs should dogfood llapi&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5065&quot;&gt;&lt;del&gt;LU-5065&lt;/del&gt;&lt;/a&gt; utils: uninclude lustre_idl.h from lfs.&lt;/p&gt;</comment>
                            <comment id="84162" author="bogl" created="Thu, 15 May 2014 13:06:14 +0000"  >&lt;p&gt;I object to item 4. in your goals list.  I do use the interactive mode, at least occasionally.  I&apos;m not saying it&apos;s essential and we can&apos;t live without it, but I do say it&apos;s useful &amp;amp; I do use it.  Even for non-interactive use it&apos;s sometimes more convenient to create a short multiline script and feed it to the tool with input redirection instead of doing many separate invocations of lfs.  The same is true for lctl, which also has an interactive mode.&lt;/p&gt;</comment>
                            <comment id="84176" author="rhenwood" created="Thu, 15 May 2014 14:23:40 +0000"  >&lt;p&gt;I am in agreement with Bob on the point that we can live without it.&lt;/p&gt;

&lt;p&gt;My experience is that interactive mode is an irritation that I exit from immediately. I am in favour of it&apos;s removal in pursuit of your &apos;dog fooding llapi&apos; plan.&lt;/p&gt;</comment>
                            <comment id="84191" author="rread" created="Thu, 15 May 2014 16:50:53 +0000"  >&lt;p&gt;+1 for deleting interactive mode or at least not being the default option (which could be move to a different ticket).&lt;/p&gt;
</comment>
                            <comment id="85545" author="jhammond" created="Tue, 3 Jun 2014 07:02:44 +0000"  >&lt;p&gt;Patch landed to master. lfs interactive mode stays for now.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="24578">LU-5011</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|hzwmkf:</customfieldvalue>

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