<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:38:23 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-10810] SEEK_HOLE and SEEK_DATA support for lseek</title>
                <link>https://jira.whamcloud.com/browse/LU-10810</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;lseek with SEEK_HOLE and SEEK_DATA are really helpful&#160; and easy to use tools for any usersapce applications like copy and backup. Currently lustre has min support implementation as per the man page which is not that useful however lustre does support fiemap&#160;ioctl which can be used for mapping data in the file.&lt;br/&gt;
As we already have support for fiemap I guess with some implementation lustre can support SEEK_HOLE and SEEK_DATA flags. I guess having this support will be helpful to deal with sparse files. Any feedback about the implementation will be really helpful.&lt;/p&gt;</description>
                <environment></environment>
        <key id="51334">LU-10810</key>
            <summary>SEEK_HOLE and SEEK_DATA support for lseek</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</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="1">Fixed</resolution>
                                        <assignee username="tappro">Mikhail Pershin</assignee>
                                    <reporter username="ljaliminche">Lokesh N J</reporter>
                        <labels>
                            <label>medium</label>
                    </labels>
                <created>Tue, 13 Mar 2018 12:31:10 +0000</created>
                <updated>Fri, 17 Mar 2023 19:48:48 +0000</updated>
                            <resolved>Sat, 7 Nov 2020 14:23:49 +0000</resolved>
                                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>14</watches>
                                                                            <comments>
                            <comment id="225817" author="adilger" created="Wed, 11 Apr 2018 23:44:14 +0000"  >&lt;p&gt;I was originally thinking that &lt;tt&gt;SEEK_HOLE&lt;/tt&gt; and &lt;tt&gt;SEEK_DATA&lt;/tt&gt; would be best implemented by calling &lt;tt&gt;FIEMAP&lt;/tt&gt; internally, but the remapping of &lt;tt&gt;FIEMAP&lt;/tt&gt; data to file-offset extents may be quite complex (and getting worse with PFL, composite layouts, FLR, DoM, etc).  It probably makes more sense to have an interface which takes the current file offset, maps it to the object offset(s) (via LOV EA), and then calls &lt;tt&gt;SEEK_HOLE/SEEK_DATA&lt;/tt&gt; on the OST (or DoM MDT) for each of the objects that cover the current component, and then LOV maps those object offsets back to file offsets and finds the lowest mapped offset of any of the objects.&lt;/p&gt;

&lt;p&gt;This approach would be relatively straight forward to implement (LOV can already do file&amp;lt;-&amp;gt;object mapping), though some care would be needed when e.g. crossing component extent boundaries.&lt;/p&gt;</comment>
                            <comment id="274121" author="adilger" created="Tue, 30 Jun 2020 22:31:36 +0000"  >&lt;p&gt;I was checking when &lt;tt&gt;SEEK_HOLE&lt;/tt&gt; and &lt;tt&gt;SEEK_DATA&lt;/tt&gt; were added to the kernel (originally kernel commit v3.7-rc3-24-gc8c0df241cc2).  This was later fixed by kernel commits v4.12-rc2-3-g7d95eddf313c and v4.14-rc3-4-g545052e9e35a, both of which are already included in RHEL7.  On ZFS, this functionality was added to ZPL by commit zfs-0.6.1-56-g802e7b5fe by Dongyang.&lt;/p&gt;</comment>
                            <comment id="274183" author="jhammond" created="Wed, 1 Jul 2020 14:57:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=adilger&quot; class=&quot;user-hover&quot; rel=&quot;adilger&quot;&gt;adilger&lt;/a&gt; goes on to say:&lt;/p&gt;

&lt;p&gt;John, for the sparse file handling, IMHO the best (and potentially relatively low-effort) implementation of &lt;tt&gt;SEEK_{HOLE,DATA&lt;/tt&gt;} would be as described in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt;.  Essentially, it would be &quot;GETATTR with a &lt;tt&gt;SEEK_{HOLE,DATA&lt;/tt&gt;} flag&quot; passing the current file offset and returning the start of the next hole/data.  This would require very little extra code, and it leverages the &lt;tt&gt;SEEK_{HOLE,DATA&lt;/tt&gt;} implementation of the underlying filesystem plus the existing LOV file offset remapping code.  For &lt;tt&gt;SEEK_HOLE&lt;/tt&gt; it would return the maximum hole offset of all allocated objects overlapping the current file offset or in later components.  For &lt;tt&gt;SEEK_DATA&lt;/tt&gt;, it would return the minimum data offset of all allocated objects overlapping the current file offset or in later components.&lt;/p&gt;

&lt;p&gt;The main drawback of using &lt;tt&gt;SEEK_{HOLE,DATA&lt;/tt&gt;} is that it needs changes on both the client and server, but avoids the (IMHO considerable) overhead of all-zero block detection.  However, we may need to do zero-block detection in the copy code anyway for compatibility and ease of fast deployment, since that is what &lt;tt&gt;cp &amp;#45;&amp;#45;sparse=always&lt;/tt&gt; does in the end if &lt;tt&gt;SEEK_{HOLE,DATA&lt;/tt&gt;} is not available.  It would be possible to have the copytool try &lt;tt&gt;SEEK_{HOLE,DATA&lt;/tt&gt;} first, but if the file is known to be sparse (&lt;tt&gt;st_blocks &amp;lt; st_size&lt;/tt&gt;) but &lt;tt&gt;SEEK_HOLE&lt;/tt&gt; returns &lt;tt&gt;&amp;gt;= st_size&lt;/tt&gt; then &lt;tt&gt;--sparse=always&lt;/tt&gt; would fall back to zero block detection.  If &lt;tt&gt;SEEK_HOLE&lt;/tt&gt; returns &lt;tt&gt;&amp;lt; st_size&lt;/tt&gt; then this feature is working.  Note that this is &lt;b&gt;not&lt;/b&gt; safe for files that are currently being accessed, even if &lt;tt&gt;fsync(fd)&lt;/tt&gt; is called before &lt;tt&gt;seek(SEEK_HOLE)&lt;/tt&gt; because this doesn&apos;t exclude other clients from modifying pages in their own cache.  That is not an issue with a local filesystem, but is an issue for a distributed filesystem.  The client should probably return &lt;tt&gt;-EOPNOTSUPP&lt;/tt&gt; or &lt;tt&gt;st_size&lt;/tt&gt; if the &lt;tt&gt;SEEK_HOLE&lt;/tt&gt; call returns an offset &lt;tt&gt;&amp;lt; st_size&lt;/tt&gt; but the client is not currently holding a &lt;tt&gt;PW&lt;/tt&gt; DLM lock on that extent (i.e. some other client could be concurrently writing into that hole).&lt;/p&gt;


</comment>
                            <comment id="277578" author="tappro" created="Mon, 17 Aug 2020 05:57:29 +0000"  >&lt;p&gt;Current status on ticket. I am starting to combine all small parts to working code at this week, server code will be first, then client part and tests. I expect to push working code in gerrit at the next week. It is possible to split it for patches on&#160;server changes (no tests, just code) and&#160;client changes plus tests.&lt;/p&gt;</comment>
                            <comment id="277638" author="adilger" created="Mon, 17 Aug 2020 21:20:18 +0000"  >&lt;p&gt;Will you need an OBD_CONNECT flag for this?&lt;/p&gt;</comment>
                            <comment id="277639" author="tappro" created="Mon, 17 Aug 2020 21:52:17 +0000"  >&lt;p&gt;Andreas, yes I use one already.&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;
#define OBD_CONNECT2_LSEEK &#160; &#160; &#160; &#160;0x40000ULL &lt;span class=&quot;code-comment&quot;&gt;/* SEEK_HOLE/DATA RPC support */&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I didn&apos;t check yet if this value is being used by some other patches&lt;/p&gt;</comment>
                            <comment id="277641" author="tappro" created="Mon, 17 Aug 2020 22:01:26 +0000"  >&lt;p&gt;I choose to use separate OST_SEEK RPC instead of OST_GETATTR because that would make OST_GETATTR sort of ioctl which does one or another things depending on flags, moreover it is not returning ATTR even just separate information. Also this RPC itself  looks obsoleted - it is being used now only to get data_version and would require also new MDT  handler and new attr flag. Contrary, OST_SEEK is simple and handled by unified TGT handler for both MDT/OFD.&lt;/p&gt;</comment>
                            <comment id="277887" author="gerrit" created="Fri, 21 Aug 2020 20:46:24 +0000"  >&lt;p&gt;Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/39706&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39706&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; osd: implement lseek method in OSD&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 24983c305b0c64f42e57ae7d91cac81424099c0f&lt;/p&gt;</comment>
                            <comment id="277888" author="gerrit" created="Fri, 21 Aug 2020 20:46:25 +0000"  >&lt;p&gt;Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/39707&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39707&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; ptlrpc: introduce OST_SEEK RPC&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 643bbb697e5439bb720acdb5038067b7bec6b83a&lt;/p&gt;</comment>
                            <comment id="277889" author="gerrit" created="Fri, 21 Aug 2020 20:46:26 +0000"  >&lt;p&gt;Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/39708&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39708&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; clio: SEEK_HOLE/SEEK_DATA on client side&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: c02e19f65667971f8320b20d99cd5db7199b7c8d&lt;/p&gt;</comment>
                            <comment id="277894" author="tappro" created="Fri, 21 Aug 2020 21:22:09 +0000"  >&lt;p&gt;Things work with these three patches for normal files. ZFS is not working because needed function &lt;tt&gt;dmu_offset_next&lt;/tt&gt; is not exported.&lt;/p&gt;

&lt;p&gt;More work is needed for released files support, considering that tools uses &lt;tt&gt;SEEK_DATA/SEEK_HOLE&lt;/tt&gt; prior data copying I suppose we need to restore released file during lseek operation.&lt;/p&gt;

&lt;p&gt;Also more tests are needed for cases with concurrent access to the file while lseek is being performed.&lt;/p&gt;</comment>
                            <comment id="277900" author="adilger" created="Fri, 21 Aug 2020 22:34:34 +0000"  >&lt;p&gt;Please link to the GitHubissue and &#160;pull request for exporting{{dmu_offset_next()}} when you have it. It would also be possible to use symbol lookup in the kernel until the kernel exports it.&#160;&lt;/p&gt;</comment>
                            <comment id="279441" author="gerrit" created="Sat, 12 Sep 2020 15:45:54 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/39706/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39706/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; osd: implement lseek method in OSD&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 947af94817f8eeb5e6108b0b3cde65419b13c8d3&lt;/p&gt;</comment>
                            <comment id="279486" author="gerrit" created="Mon, 14 Sep 2020 07:38:33 +0000"  >&lt;p&gt;Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/39894&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39894&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; test: extended debug for lseek test&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: f397a37df3b2f8f636686edc37b1720f58aa088a&lt;/p&gt;</comment>
                            <comment id="281351" author="jhammond" created="Fri, 2 Oct 2020 15:06:06 +0000"  >&lt;p&gt;coreutils cp added SEEK_HOLE/DATA support earlier this year. See &lt;a href=&quot;https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=a6eaee501f6ec0c152abe88640203a64c390993e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=a6eaee501f6ec0c152abe88640203a64c390993e&lt;/a&gt; &lt;/p&gt;</comment>
                            <comment id="283932" author="gerrit" created="Sat, 31 Oct 2020 09:07:13 +0000"  >&lt;p&gt;Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/40502&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/40502&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; test: check seek support in tools&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 9dc5e733c58bcdd12a987a4b06eb2f4845597dfb&lt;/p&gt;</comment>
                            <comment id="284598" author="gerrit" created="Sat, 7 Nov 2020 04:55:29 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/40570&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/40570&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; tests: Fix calls to lseek_test_425&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 14cc826f465679531e352fd3852b115d369f6773&lt;/p&gt;</comment>
                            <comment id="284599" author="gerrit" created="Sat, 7 Nov 2020 08:12:17 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/39707/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39707/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; ptlrpc: introduce OST_SEEK RPC&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 6d5fe29066af5f8e40055fd89b285853c363e947&lt;/p&gt;</comment>
                            <comment id="284600" author="gerrit" created="Sat, 7 Nov 2020 08:12:39 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/39708/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39708/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; clio: SEEK_HOLE/SEEK_DATA on client side&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: cda353e6efae5013a26aedbe49d8aa6fb8fe456e&lt;/p&gt;</comment>
                            <comment id="284601" author="gerrit" created="Sat, 7 Nov 2020 08:12:59 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/40502/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/40502/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; test: test lseek support in tools&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: d633172a38519aba2585c2a1fdcdd821cb19010c&lt;/p&gt;</comment>
                            <comment id="284620" author="pjones" created="Sat, 7 Nov 2020 14:23:49 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                            <comment id="286967" author="adilger" created="Tue, 8 Dec 2020 10:12:06 +0000"  >&lt;p&gt;Mike, I noticed some test runs are reporting no SEEK_HOLE support for test_430a,430b,430c, even though client and server are running on the current tip of master (v2_13_56-149-ge5c8f6670f):&lt;br/&gt;
&lt;a href=&quot;https://testing.whamcloud.com/search?horizon=518400&amp;amp;status%5B%5D=SKIP&amp;amp;test_set_script_id=f9516376-32bc-11e0-aaee-52540025f9ae&amp;amp;sub_test_script_id=4154d1b3-ab47-47e4-9ecd-ea85afa35353&amp;amp;source=sub_tests#redirect&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.whamcloud.com/search?horizon=518400&amp;amp;status%5B%5D=SKIP&amp;amp;test_set_script_id=f9516376-32bc-11e0-aaee-52540025f9ae&amp;amp;sub_test_script_id=4154d1b3-ab47-47e4-9ecd-ea85afa35353&amp;amp;source=sub_tests#redirect&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It doesn&apos;t look like all test runs are being skipped, but I didn&apos;t think this feature is specific to ZFS or ldiskfs, so I&apos;m not sure why the subtests are being skipped.&lt;/p&gt;
</comment>
                            <comment id="286968" author="tappro" created="Tue, 8 Dec 2020 11:12:37 +0000"  >&lt;p&gt;Andreas, I&apos;ve check these reports and in fact only couple of them are ldiskfs, in these cases there were old servers used, with just no lseek support. All ZFS tests are expected to be skipped.&#160;&lt;/p&gt;

&lt;p&gt;In fact, I was testing recently ZFS 8.5 with exported &lt;tt&gt;dmu_offset_mext()&lt;/tt&gt; to check how it behave and have found that there are problems.&lt;br/&gt;
 ZFS SEEK_HOLE/DATA support is unreliable because it doesn&apos;t work if there are dirty data, that cause all test to fail because we don&apos;t do full data sync prior each lseek. I was trying to sync data in tests but with no big success. Moreover I don&apos;t think test failures are problems, after all we could sync everything just to make test pass but that would not mean ZFS lseek is reliable until ZFS itself will handle dirty data.&lt;/p&gt;

&lt;p&gt;For now it can report HOLE at offset 1000 (correct) and immediately SEEK_DATA(1000) returns also 1000 (incorrectly) just because there are dirty data and it switches to generic approach (all file is data with hole at the end). I am afraid we cannot rely on ZFS until its option &lt;tt&gt;zfs_dmu_offset_next_sync&lt;/tt&gt; is set, which in turn would cause zfs slowdown when SEEK_DATA is performed on it&lt;/p&gt;

&lt;p&gt;So basically ZFS server should report LSEEK support only if&#160;&lt;tt&gt;zfs_dmu_offset_next_sync&lt;/tt&gt; is set AND &lt;tt&gt;dmu_offset_next&lt;/tt&gt; is exported. And that should be done now I think, before we will start using ZFS 8.5 and find out that lseek is reported as supported but doesn&apos;t work as expected&lt;/p&gt;</comment>
                            <comment id="366289" author="gerrit" created="Fri, 17 Mar 2023 19:48:46 +0000"  >&lt;p&gt;&quot;Etienne AUJAMES &amp;lt;eaujames@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50325&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50325&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; osd: implement lseek method in OSD&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: b21bc7e262aff42aa3fd90966a791de4ad515dd0&lt;/p&gt;</comment>
                            <comment id="366290" author="gerrit" created="Fri, 17 Mar 2023 19:48:47 +0000"  >&lt;p&gt;&quot;Etienne AUJAMES &amp;lt;eaujames@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50326&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50326&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; ptlrpc: introduce OST_SEEK RPC&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ff27b1c2da37c1d910da48738e97f7193f4453ef&lt;/p&gt;</comment>
                            <comment id="366291" author="gerrit" created="Fri, 17 Mar 2023 19:48:47 +0000"  >&lt;p&gt;&quot;Etienne AUJAMES &amp;lt;eaujames@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50327&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50327&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; clio: SEEK_HOLE/SEEK_DATA on client side&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: a196f0c1aaac7d1e58aa85847256bc5f2e24f1c1&lt;/p&gt;</comment>
                            <comment id="366292" author="gerrit" created="Fri, 17 Mar 2023 19:48:48 +0000"  >&lt;p&gt;&quot;Etienne AUJAMES &amp;lt;eaujames@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50328&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50328&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10810&quot; title=&quot;SEEK_HOLE and SEEK_DATA support for lseek&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10810&quot;&gt;&lt;del&gt;LU-10810&lt;/del&gt;&lt;/a&gt; test: test lseek support in tools&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 59154a1c86e186c98359b042f96df389f0b91ebe&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="58545">LU-13397</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="12050">LU-1941</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="19874">LU-3606</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57837">LU-13155</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="61717">LU-14143</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53924">LU-11621</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="61992">LU-14217</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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|hzzubr:</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>