<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:04:07 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-137] ioctl passthrough mechanism for Lustre OST/MDT mountpoints</title>
                <link>https://jira.whamcloud.com/browse/LU-137</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Implement an interface for sending IO Control (ioctl) commands from userspace through the Lustre mount point to the underlying ldiskfs filesystem to allow execution of filesystem-wide ioctl() commands, such as resize. This will allow user-space tools that operate via ioctl() commands on the filesystem mountpoint to be used on the Lustre MDT and OST filesystems while they are mounted and in use subject to any limitations of the original ioctl() commands themselves.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10459">LU-137</key>
            <summary>ioctl passthrough mechanism for Lustre OST/MDT mountpoints</summary>
                <type id="2" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11311&amp;avatarType=issuetype">New Feature</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="adilger">Andreas Dilger</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Thu, 17 Mar 2011 01:24:38 +0000</created>
                <updated>Tue, 15 Aug 2023 07:36:29 +0000</updated>
                            <resolved>Fri, 19 May 2023 12:30:22 +0000</resolved>
                                    <version>Lustre 2.1.0</version>
                    <version>Lustre 2.5.0</version>
                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>13</watches>
                                                                            <comments>
                            <comment id="15590" author="bryon" created="Mon, 6 Jun 2011 01:49:15 +0000"  >&lt;p&gt;Assigning back to Andreas until we find a new owner for this project.&lt;/p&gt;</comment>
                            <comment id="15743" author="adilger" created="Tue, 7 Jun 2011 00:31:06 +0000"  >&lt;p&gt;Prototype patch for ioctl passthrough.  It is known to have problems (i.e. crash if used), but is close to what I think would work.&lt;/p&gt;

&lt;p&gt;There are a few avenues for investigation as to why it is not working:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;I had to make a change to the e2fsprogs library to allow resize2fs to work,&lt;br/&gt;
 because it was calling stat() on the mountpoint to verify that it was the&lt;br/&gt;
 same as the underlying block device, to determine if the filesystem is mounted.&lt;br/&gt;
 (first attachment)&lt;/li&gt;
	&lt;li&gt;This in turn required a change to the lustre server mountpoint to ensure that&lt;br/&gt;
 it is initializing the device number correctly, so that st_rdev for the Lustre&lt;br/&gt;
 mountpoint is the same as st_dev of the underlying device node.  This is also&lt;br/&gt;
 included with the server_ioctl() function that is supposed to be working.&lt;br/&gt;
 (second attachment)&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the pointer to the underlying ldiskfs device may be incorrect.  The handling&lt;br/&gt;
 of the internal ldiskfs mountpoint is more complex than I&apos;d like, so it isn&apos;t&lt;br/&gt;
 immediately clear that my code is pointing at the right device&lt;/li&gt;
	&lt;li&gt;the size of the ioctl parameter that is being copied could be incorrect&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="15745" author="adilger" created="Tue, 7 Jun 2011 01:19:35 +0000"  >&lt;p&gt;Patch for the e2fsprogs resize2fs tool to allow it to specify the directory mountpoint for resizing, instead of requiring one to specify a block device for the resize operation.&lt;/p&gt;

&lt;p&gt;I don&apos;t think this should be required for the ioctl passthrough to work, but it simplifies the usage of resize2fs, and I thought I needed it until I fixed the Lustre sb-&amp;gt;s_dev on the mounted filesystem.&lt;/p&gt;</comment>
                            <comment id="15746" author="adilger" created="Tue, 7 Jun 2011 01:22:16 +0000"  >&lt;p&gt;Updated patch that includes sb-&amp;gt;s_dev fix.&lt;/p&gt;</comment>
                            <comment id="59187" author="kalpak" created="Thu, 23 May 2013 19:45:19 +0000"  >&lt;p&gt;Hi Andreas, I am working on this ticket. &lt;/p&gt;</comment>
                            <comment id="59202" author="adilger" created="Thu, 23 May 2013 21:51:31 +0000"  >&lt;p&gt;Unfortunately, I expect that the 1.8 version of the patch is completely useless for the current 2.1 and master code...&lt;/p&gt;

&lt;p&gt;You might want to experiment with some simple ioctl (e.g. EXT4_IOC_GETFLAGS or EXT4_IOC_GETVERSION) to get that working before you try to have resize2fs calling the online resizer.  The end goal is that at least EXT4_IOC_GROUP_EXTEND/EXT4_IOC_GROUP_ADD (old resize), EXT4_IOC_RESIZE_FS (new resize), and FITRIM work.&lt;/p&gt;</comment>
                            <comment id="64391" author="spimpale" created="Fri, 16 Aug 2013 09:04:51 +0000"  >&lt;p&gt;Hi Andeas,&lt;/p&gt;

&lt;p&gt;I have ported the ioctl_passthru-1_8.patch to the latest master.&lt;br/&gt;
With this patch I tested EXT4_IOC_GETFLAGS and EXT4_IOC_GETVERSION ioctls on OST and MDT mountpoints. These ioctls work and return expected values.&lt;br/&gt;
I have added this a testcase in sanity.sh&lt;br/&gt;
The patch can be found here -&amp;gt; &lt;a href=&quot;http://review.whamcloud.com/#/c/7354/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/7354/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I tried the EXT4_IOC_SETVERSION ioctl but that resulted in a crash.&lt;br/&gt;
Is that expected?&lt;/p&gt;</comment>
                            <comment id="64449" author="adilger" created="Mon, 19 Aug 2013 05:34:35 +0000"  >&lt;p&gt;It definitely shouldn&apos;t crash regardless if what ioctl is used, though I don&apos;t necessarily expect it to do anything useful. Presumably the GETVERSION and GETFLAGS ioctls return the correct values from the underlying root inode?&lt;/p&gt;

&lt;p&gt;Next step is to figure out why it crashed and fix that. &lt;/p&gt;</comment>
                            <comment id="64461" author="spimpale" created="Mon, 19 Aug 2013 13:37:36 +0000"  >&lt;p&gt;Yes, GETVERSION and GETFLAGS ioctls return correct values which are as follows:&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;MDS:
GETVERSION: 0
GETFLAGS: 0x0

OST:
GETVERSION: 0
GETFLAGS: 0x80000
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The crash occurred because of a NULL pointer dereference in mnt_want_write().&lt;br/&gt;
The stack is as follows:&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;&amp;lt;1&amp;gt;BUG: unable to handle kernel NULL pointer dereference at 00000000000000e2
&amp;lt;1&amp;gt;IP: [&amp;lt;ffffffff81193c34&amp;gt;] mnt_want_write+0x14/0x80
&amp;lt;4&amp;gt;PGD 1512d067 PUD c0d4067 PMD 0 
&amp;lt;4&amp;gt;Oops: 0000 [#1] SMP 
&amp;lt;4&amp;gt;last sysfs file: /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/irq
&amp;lt;4&amp;gt;CPU 1 
&amp;lt;4&amp;gt;Modules linked in: lustre(U) ofd(U) osp(U) lod(U) ost(U) mdt(U) osd_ldiskfs(U) fsfilt_ldiskfs(U) ldiskfs(U) mdd(U) mgs(U) lquota(U) lfsck(U) obdecho(U) mgc(U) lov(U) osc(U) mdc(U) lmv(U) fid(U) fld(U) ptlrpc(U) obdclass(U) lvfs(U) ksocklnd(U) lnet(U) libcfs(U) jbd2 sha512_generic sha256_generic crc32c_intel nfsd lockd nfs_acl auth_rpcgss exportfs sunrpc ipv6 dm_mirror dm_region_hash dm_log uinput ppdev parport_pc parport e1000 sg vmware_balloon i2c_piix4 i2c_core shpchp ext3 jbd mbcache sd_mod crc_t10dif sr_mod cdrom mptspi mptscsih mptbase scsi_transport_spi pata_acpi ata_generic ata_piix dm_mod [last unloaded: libcfs]
&amp;lt;4&amp;gt;
&amp;lt;4&amp;gt;Pid: 26460, comm: ioctl_passthru Not tainted 2.6.32-279.19.1.el6_lustre.x86_64 #1 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
&amp;lt;4&amp;gt;RIP: 0010:[&amp;lt;ffffffff81193c34&amp;gt;]  [&amp;lt;ffffffff81193c34&amp;gt;] mnt_want_write+0x14/0x80
&amp;lt;4&amp;gt;RSP: 0018:ffff880020525cc8  EFLAGS: 00010246
&amp;lt;4&amp;gt;RAX: 0000000000000000 RBX: ffff880020525d78 RCX: 0000000000000003
&amp;lt;4&amp;gt;RDX: 0000000000000001 RSI: 0000000040086604 RDI: 0000000000000002
&amp;lt;4&amp;gt;RBP: ffff880020525cc8 R08: ffffffffa0462c80 R09: 0000000000000000
&amp;lt;4&amp;gt;R10: 0000000000000000 R11: 0000000000000206 R12: 00007fff78321100
&amp;lt;4&amp;gt;R13: ffff88003c9be5b0 R14: 00007fff78321100 R15: 0000000000000000
&amp;lt;4&amp;gt;FS:  00007f94d8a74700(0000) GS:ffff880002280000(0000) knlGS:0000000000000000
&amp;lt;4&amp;gt;CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
&amp;lt;4&amp;gt;CR2: 00000000000000e2 CR3: 000000001dcfc000 CR4: 00000000000006e0
&amp;lt;4&amp;gt;DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
&amp;lt;4&amp;gt;DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
&amp;lt;4&amp;gt;Process ioctl_passthru (pid: 26460, threadinfo ffff880020524000, task ffff880020622aa0)
&amp;lt;4&amp;gt;Stack:
&amp;lt;4&amp;gt; ffff880020525d58 ffffffffa07198f4 0000000000000000 ffff88001dc499a8
&amp;lt;4&amp;gt;&amp;lt;d&amp;gt; 0000000000000286 ffff88003c9be5b0 ffff880020525d18 ffffffff811902c0
&amp;lt;4&amp;gt;&amp;lt;d&amp;gt; ffff880020525d18 ffff88003c9be5b0 ffff880020525d58 ffffffff8118ee10
&amp;lt;4&amp;gt;Call Trace:
&amp;lt;4&amp;gt; [&amp;lt;ffffffffa07198f4&amp;gt;] ldiskfs_ioctl+0xe4/0x940 [ldiskfs]
&amp;lt;4&amp;gt; [&amp;lt;ffffffff811902c0&amp;gt;] ? iput+0x30/0x70
&amp;lt;4&amp;gt; [&amp;lt;ffffffff8118ee10&amp;gt;] ? d_obtain_alias+0xc0/0x230
&amp;lt;4&amp;gt; [&amp;lt;ffffffffa0451b2a&amp;gt;] server_ioctl+0xba/0xf0 [obdclass]
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81312cb3&amp;gt;] ? pty_write+0x73/0x80
&amp;lt;4&amp;gt; [&amp;lt;ffffffff8130c34e&amp;gt;] ? do_output_char+0x1de/0x210
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81090d4c&amp;gt;] ? remove_wait_queue+0x3c/0x50
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81052223&amp;gt;] ? __wake_up+0x53/0x70
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81189012&amp;gt;] vfs_ioctl+0x22/0xa0
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81310efe&amp;gt;] ? tty_ldisc_deref+0xe/0x10
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81309e93&amp;gt;] ? tty_write+0x233/0x2a0
&amp;lt;4&amp;gt; [&amp;lt;ffffffff811891b4&amp;gt;] do_vfs_ioctl+0x84/0x580
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81176602&amp;gt;] ? vfs_write+0x132/0x1a0
&amp;lt;4&amp;gt; [&amp;lt;ffffffff81189731&amp;gt;] sys_ioctl+0x81/0xa0
&amp;lt;4&amp;gt; [&amp;lt;ffffffff8100b072&amp;gt;] system_call_fastpath+0x16/0x1b
&amp;lt;4&amp;gt;Code: 8b 40 58 83 e0 01 c9 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 0f 1f 44 00 00 65 8b 14 25 b8 e0 00 00 48 63 d2 &amp;lt;48&amp;gt; 8b 87 e0 00 00 00 48 03 04 d5 20 81 bf 81 83 00 01 0f ae f0
&amp;lt;1&amp;gt;RIP  [&amp;lt;ffffffff81193c34&amp;gt;] mnt_want_write+0x14/0x80
&amp;lt;4&amp;gt; RSP &amp;lt;ffff880020525cc8&amp;gt;
&amp;lt;4&amp;gt;CR2: 00000000000000e2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This was because the active_filp.f_path.mnt was not filled in before calling the ioctl. &lt;br/&gt;
I have fixed this problem in the next patchset (&lt;a href=&quot;http://review.whamcloud.com/#/c/7354/4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/7354/4&lt;/a&gt;)&lt;br/&gt;
With this fix, I am able to test the SETVERSION and SETFLAGS ioctl.&lt;/p&gt;

&lt;p&gt;I also tested the old online resizefs ioctl LDISKFS_IOC_GROUP_EXTEND (latest e2fsprogs) as follows and it seems to be working:&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;# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              28G   20G  6.3G  76% /
tmpfs                 435M   88K  435M   1% /dev/shm
/dev/sda1             486M  109M  352M  24% /boot
/dev/loop0            147M   18M  120M  13% /mnt/mds1
/dev/loop1            184M   26M  149M  15% /mnt/ost1
/dev/loop2            184M   26M  149M  15% /mnt/ost2
TM2@tcp:/lustre       367M   51M  297M  15% /mnt/lustre

# dd if=/dev/zero of=/tmp/lustre-ost-x bs=1M count=200

# mkfs.lustre --fsname=lustre --mgsnode=192.168.100.26@tcp0 --ost --index=2 --device-size=100000 /tmp/lustre-ost-x

# mount -t lustre -o loop /tmp/lustre-ost-x /mnt/ost-x/

# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              28G   20G  6.3G  76% /
tmpfs                 435M   88K  435M   1% /dev/shm
/dev/sda1             486M  109M  352M  24% /boot
/dev/loop0            147M   18M  120M  13% /mnt/mds1
/dev/loop1            184M   26M  149M  15% /mnt/ost1
/dev/loop2            184M   26M  149M  15% /mnt/ost2
TM2@tcp:/lustre       458M   56M  378M  13% /mnt/lustre
/dev/loop3             92M  5.3M   82M   7% /mnt/ost-x

~/e2fsprogs# ./build/resize/resize2fs /dev/loop3 125M
resize2fs 1.43-WIP (21-Jan-2013)
Filesystem at /dev/loop3 is mounted on /mnt/ost-x; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/loop3 to 32000 (4k) blocks.
The filesystem on /dev/loop3 is now 32000 blocks long.

# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              28G   20G  6.3G  76% /
tmpfs                 435M   88K  435M   1% /dev/shm
/dev/sda1             486M  109M  352M  24% /boot
/dev/loop0            147M   18M  120M  13% /mnt/mds1
/dev/loop1            184M   26M  149M  15% /mnt/ost1
/dev/loop2            184M   26M  149M  15% /mnt/ost2
TM2@tcp:/lustre       486M   56M  406M  13% /mnt/lustre
/dev/loop3            119M  5.3M  109M   5% /mnt/ost-x

# umount /mnt/ost-x/

# mount -t lustre -o loop /tmp/lustre-ost-x /mnt/ost-x/

# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              28G   20G  6.3G  76% /
tmpfs                 435M   88K  435M   1% /dev/shm
/dev/sda1             486M  109M  352M  24% /boot
/dev/loop0            147M   18M  120M  13% /mnt/mds1
/dev/loop1            184M   26M  149M  15% /mnt/ost1
/dev/loop2            184M   26M  149M  15% /mnt/ost2
TM2@tcp:/lustre       486M   56M  406M  13% /mnt/lustre
/dev/loop3            119M  5.3M  109M   5% /mnt/ost-x
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="83603" author="spimpale" created="Fri, 9 May 2014 05:13:50 +0000"  >&lt;p&gt;Hi Alex,&lt;/p&gt;

&lt;p&gt;This patch: &lt;a href=&quot;http://review.whamcloud.com/#/c/8286/2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/8286/2&lt;/a&gt; removes lsi_srv_mnt, lmi_mnt and ddp_mnt. It is mentioned in the commit message that vfsmount has become redundant because of the introduction of local storage device.&lt;br/&gt;
IOCTL passthrough patch needs a valid vfsmount.&lt;/p&gt;

&lt;p&gt;The following is per discussion with Andreas:&lt;br/&gt;
Seems ext4_ioctl() needs filp for mnt_{want,drop}_write_file(), which uses file-&amp;gt;f_path.mnt for a number of things, so it really needs a valid vfsmnt structure. It looks like the vfsmount is still available in osd_dt_dev(lsi-&amp;gt;lsi_dt_dev)-&amp;gt;od_mnt, but it looks like od_mnt is specific to the underlying OSD device (ldiskfs or ZFS). It looks like there are no direct ioctls for the DMU -  they are all handled via /dev/zfs. there are two ioctls for ZFS files in ZPL, but we don&apos;t use that, so this only needs to work for ldiskfs mountpoints for now. But, it isn&apos;t safe to dig into the OSD structure directly, since this could crash on a ZFS-backed filesystem. It might make sense to add the vfsmnt into dt_device_param. We might need to add a -&amp;gt;dt_ioctl() method to dt_device_operations, since accessing the superblock directly is also bad.&lt;/p&gt;

&lt;p&gt;Sadly, looking at this patch (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-137&quot; title=&quot;ioctl passthrough mechanism for Lustre OST/MDT mountpoints&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-137&quot;&gt;&lt;del&gt;LU-137&lt;/del&gt;&lt;/a&gt;) in light of ZFS-backed devices (i.e. anything 2.4 and later), it seems that there are quite a few things that are not &quot;right&quot; about it.  ZFS doesn&apos;t even have a superblock, so that makes much of the patch invalid.  Some of the info can be fetched via the osd_conf_get() interface, in particular s_dev is important for the resize ioctl. Note that even accessing the osd_device outside of the OSD code isn&apos;t possible, because the osd_device structure is different for each OSD.&lt;/p&gt;

&lt;p&gt;What would be the best way to proceed in this case?&lt;/p&gt;</comment>
                            <comment id="83810" author="bzzz" created="Mon, 12 May 2014 06:41:50 +0000"  >&lt;p&gt;I don&apos;t think you want to manage ZFS pools (or btrfs devices) directly. we can provide vfsmount or superblock via osd_conf_get(), but again that will work for ldiskfs only.&lt;/p&gt;</comment>
                            <comment id="92851" author="adilger" created="Fri, 29 Aug 2014 18:56:46 +0000"  >&lt;p&gt;Alex, what about adding a new dt_ioctl() method for the OSD API?  It would of course be fine if the underlying OSD doesn&apos;t support the given ioctl (e.g. returns -ENOTTY) but gives a way to add features like this.  I see that this was handled for FIEMAP by adding a dbo_fiemap_get() method (though it could return -EOPNOTSUPP a LOT earlier in the request processing), but that might result in an explosion of different methods if we add one for every ioctl.  Other candidates that we might need in the future include FITRIM to trim unallocated space for SSD or thin-provisioned devices, EXT4_IOC_PRECACHE_EXTENTS to prefetch file extent metadata, EXT4_IOC_MOVE_EXT or EXT4_IOC_MIGRATE for data migration within the OST.&lt;/p&gt;

&lt;p&gt;It isn&apos;t yet clear to me if we want separate ioctl methods for the whole device and per file, or if it is OK to just do the &quot;device&quot; ioctls the root inode.&lt;/p&gt;</comment>
                            <comment id="152143" author="gerrit" created="Fri, 13 May 2016 01:43:03 +0000"  >&lt;p&gt;Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/20161&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/20161&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-137&quot; title=&quot;ioctl passthrough mechanism for Lustre OST/MDT mountpoints&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-137&quot;&gt;&lt;del&gt;LU-137&lt;/del&gt;&lt;/a&gt; osd: better stat info for server mountpoints&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: db5b4aaa6177d9ab179b46a8d3e5d13c5d2c2883&lt;/p&gt;</comment>
                            <comment id="169221" author="gerrit" created="Tue, 11 Oct 2016 21:26:20 +0000"  >&lt;p&gt;Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/23092&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/23092&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-137&quot; title=&quot;ioctl passthrough mechanism for Lustre OST/MDT mountpoints&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-137&quot;&gt;&lt;del&gt;LU-137&lt;/del&gt;&lt;/a&gt; obdclass: add dt_object_put() and use it&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: cf4f59a5a7253e18ac98983216791cb730511d18&lt;/p&gt;</comment>
                            <comment id="189669" author="gerrit" created="Sun, 26 Mar 2017 06:49:37 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/23092/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/23092/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-137&quot; title=&quot;ioctl passthrough mechanism for Lustre OST/MDT mountpoints&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-137&quot;&gt;&lt;del&gt;LU-137&lt;/del&gt;&lt;/a&gt; obdclass: add dt_object_put() and use it&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 5963af745b3aa14410d5ceb66f8a7b7d6aaf576a&lt;/p&gt;</comment>
                            <comment id="234298" author="simmonsja" created="Wed, 3 Oct 2018 17:46:41 +0000"  >&lt;p&gt;Linking this since I plan on fixing the ioctl direction issue which will provide a proper interface for this as well.&lt;/p&gt;</comment>
                            <comment id="266827" author="adilger" created="Sat, 4 Apr 2020 00:46:40 +0000"  >&lt;p&gt;It may be that this has been fixed via patch &lt;a href=&quot;https://review.whamcloud.com/33131&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33131&lt;/a&gt; &quot;&lt;tt&gt;Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11355&quot; title=&quot;Add Lustre trim support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11355&quot;&gt;&lt;del&gt;LU-11355&lt;/del&gt;&lt;/a&gt; lustre: enable fstrim on lustre device&lt;/tt&gt;&quot;, which added a generic ioctl passthrough from userspace to ldiskfs.&lt;/p&gt;

&lt;p&gt;However, the last time I had tested this (several years ago) there were also some issues with e2fsprogs/resize2fs being unhappy that the block device  (&lt;tt&gt;st_rdev&lt;/tt&gt;) reported by the Lustre server stub mount did not match the underlying block device.  That is what patch: &lt;a href=&quot;http://review.whamcloud.com/20161&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/20161&lt;/a&gt; &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-137&quot; title=&quot;ioctl passthrough mechanism for Lustre OST/MDT mountpoints&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-137&quot;&gt;&lt;del&gt;LU-137&lt;/del&gt;&lt;/a&gt; osd: better stat info for server mountpoints&lt;/tt&gt;&quot; was about, but I haven&apos;t updated it in several years.&lt;/p&gt;</comment>
                            <comment id="372809" author="gerrit" created="Fri, 19 May 2023 07:01:05 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/20161/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/20161/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-137&quot; title=&quot;ioctl passthrough mechanism for Lustre OST/MDT mountpoints&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-137&quot;&gt;&lt;del&gt;LU-137&lt;/del&gt;&lt;/a&gt; osd-ldiskfs: pass through resize ioctl&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: ac0380dc519aa15310670d164e98453861ef332a&lt;/p&gt;</comment>
                            <comment id="372868" author="pjones" created="Fri, 19 May 2023 12:30:22 +0000"  >&lt;p&gt;Landed for 2.16. It&apos;s been a while since I closed a Jira ticket with a bugzilla id!&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="28520">LU-6202</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53262">LU-11355</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="76120">LU-16835</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="27356">LU-5822</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="23816">LU-4795</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="36953">LU-8151</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="24298">LU-4931</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="77441">LU-17027</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="10243" name="e2fsprogs-resize_mtpt.patch" size="4407" author="adilger" created="Tue, 7 Jun 2011 01:19:35 +0000"/>
                            <attachment id="10244" name="ioctl-passthru-1_8.diff" size="3859" author="adilger" created="Tue, 7 Jun 2011 01:22:16 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10020" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Bugzilla ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>14489.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <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|hzvrpb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8383</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>