<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:23:20 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-9111] update osd-ldiskfs to not depend on dev_readonly patches</title>
                <link>https://jira.whamcloud.com/browse/LU-9111</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;I am splitting this from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-684&quot; title=&quot;replace dev_rdonly kernel patch with dm-flakey&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-684&quot;&gt;&lt;del&gt;LU-684&lt;/del&gt;&lt;/a&gt; that would concentrate on the test-framework side of things.&lt;/p&gt;

&lt;p&gt;Currently osd interface declares dt_ro (osd_ro) operation to mark a device read-only for failover purposes.&lt;/p&gt;

&lt;p&gt;In zfs case it&apos;s achieved internally, but for ldiskfs we are carrying a special patch to do it.&lt;br/&gt;
Now, its desirable to do away with the patch.&lt;/p&gt;

&lt;p&gt;In the past James Simmons came up with the approach of using make_request fault location that was vetted down because it also makes reads fail: &lt;a href=&quot;https://review.whamcloud.com/#/c/6651/3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/6651/3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since then apparently no better method appeared to make a similar fault only to fail writes.&lt;/p&gt;

&lt;p&gt;So I wonder if we can play some smart tricks to overcome this?&lt;br/&gt;
Stuff I have in mind are:&lt;br/&gt;
1. We can probably forcefully remount everything readonly (also can patch ldiskfs not to issue any writes). In order to prevent any journal updates from happening, we can also abort journal and I think that causes all writes there to stop as well.&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;This still might cause some cached writes to go to disk flushed by pdflush, we probably can preemptively truncate those?&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;2. We might attempt to play some games on the actual underlying block device to render it readonly, like try to hijack the -&amp;gt;make_request_fn() function pointer, but I guess that&apos;s kind of shady.&lt;/p&gt;

&lt;p&gt;Any other good ideas I am missing?&lt;/p&gt;</description>
                <environment></environment>
        <key id="43738">LU-9111</key>
            <summary>update osd-ldiskfs to not depend on dev_readonly patches</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="6">Not a Bug</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="green">Oleg Drokin</reporter>
                        <labels>
                    </labels>
                <created>Sat, 11 Feb 2017 04:35:55 +0000</created>
                <updated>Tue, 14 Feb 2017 18:55:19 +0000</updated>
                            <resolved>Tue, 14 Feb 2017 18:55:19 +0000</resolved>
                                    <version>Lustre 2.10.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="184831" author="adilger" created="Tue, 14 Feb 2017 18:55:19 +0000"  >&lt;p&gt;The &lt;tt&gt;dt_ro()&lt;/tt&gt; method is only called from &lt;tt&gt;ioctl(OBD_IOC_SET_READONLY)&lt;/tt&gt;, which is itself only called from the &lt;tt&gt;lctl readonly&lt;/tt&gt; command.  The &lt;tt&gt;osd_ro()&lt;/tt&gt; method for osd-ldiskfs only returns &lt;tt&gt;-EOPNOTSUPP&lt;/tt&gt; if &lt;tt&gt;HAVE_DEV_SET_RDONLY&lt;/tt&gt; is not set.&lt;/p&gt;

&lt;p&gt;This shouldn&apos;t be used for anything other than testing - normal unmount should be used for soft failover, and STONITH should be used for hard failover.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="11774">LU-684</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="10111">LU-20</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|hzz3kf:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>