Gerrit Review Dashboard

Minh Diep · review.whamcloud.com
updated 2026-09-09 17:00:27 UTC
1
needs action
12
longstanding
1
in CI
1
ready to land

Needs your action

1 new · 12 longstanding
67175 master J ✗1B ✓T ✓R 2/2−
LU-19778 osd-ldiskfs: don't unlock DIO folios in osd_read_prep cache-hit path
needs rebase — checkpatch: cannot be cherry-picked
2 unresolved XS +2 −1
5d
needs rebase — checkpatch: cannot be cherry-picked
Oleg Drokin voted -1
2 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Patrick Farrell
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@ldiskfs:test_155seen in 7 other reviews
reviews: Qian Yingjin +1 2026-07-26 13:53 · Andreas Dilger +1 2026-07-26 13:54 · Oleg Drokin -1 2026-08-02 03:33
no vote yet: Patrick Farrell
patchsets: PS1 07-11 PS2 07-26 Andreas Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-14 04:27 Andreas Dilger COMMIT_MSG:15 — We can just remove that sentence instead...
Gerrit AI review for Lustre PS2 · 2026-07-27 21:18
(minor) Can a cached read really mark a DIO folio uptodate? A PagePrivate2 folio is allocated by folio_alloc() in osd_get_page() and never inserted into inode->i_mapping, so get_folio_create()/get_folio_lock() can never return it, and osd_get_page() calls folio_clear_uptodate() on every DIO folio just before handing it out.

The only other places osd-ldiskfs sets PG_uptodate are dio_complete_routine() and osd_write_commit(), both of which run in an earlier RPC and are undone by that folio_clear_uptodate(). That leaves the OBD_FAIL_OST_FAKE_RW SetPageUptodate() two lines above the cache-hit test as the only in-tree way to reach this branch with a DIO folio.

If there is another path, it would be good to name it here, because in that case skipping the read is itself wrong (see the comment on osd_io.c).
Andreas Dilger PS2 · 2026-08-14 04:27
We can just remove that sentence instead...
reply PS2 2026-08-14 04:27 Andreas Dilger COMMIT_MSG:28 — Again, too much LLM-generated explanation is just causing more issues than it solves.
Gerrit AI review for Lustre PS2 · 2026-07-27 21:18
(minor) This reproducer does not seem to match the mechanism above. Neither sanity test_155g nor test_63a sets fail_loc=0x238, and read_cache_enable=0 on its own only selects the DIO path - it does not make a DIO folio uptodate. LU-19778 is filed as "sanity test_428: osd_write_commit() ASSERTION( PageLocked(lnb[i].lnb_page) ) failed".

A sequence that does hold together, and matches the ticket:

    test_399b (test_fake_rw read) truncates $tfile to up to 1GB.
    fsize > od_readcache_max_filesize (default totalram/64), so
    osd_bufs_get() picks cache=false and every lnb gets a DIO folio.
    fail_loc=0x238 then makes every folio uptodate, so all of them take
    the cache-hit branch and get unlocked; iobuf->dr_npages stays 0 so
    the guarded early-release loop never runs.
    test_428 later writes 128MB files (also over the filesize limit) on
    the same service thread and trips the write-side LASSERT.

That also explains why this survived since LU-13309: it needs fail_loc=0x238 *and* the non-cached path, and test_399a/399b only take the non-cached path when the test file exceeds readcache_max_filesize.
Andreas Dilger PS2 · 2026-08-14 04:27
Again, too much LLM-generated explanation is just causing more issues than it solves.
owner Minh · uploader Andreas Dilger · PS2 uploaded 45d ago · NEW · open in Gerrit ↗
commit message
LU-19778 osd-ldiskfs: don't unlock DIO folios in osd_read_prep cache-hit path

DIO folios (PagePrivate2) are per-thread state kept locked in
oti_dio_folios[] for their lifetime.  osd_get_page() only calls
folio_lock() on first allocation; reused slots skip the lock.

When any path marks a DIO folio uptodate before osd_read_prep() sees
it — e.g. OBD_FAIL_OST_FAKE_RW (0x238) calling SetPageUptodate(), or
a cached read hitting the same folio — the cache-hit branch fires and
unlock_page() is called on a folio that must remain locked.

On the next RPC the same thread reuses the (now unlocked) folio without
re-locking it.  Two crash sites follow:

  - Read path: if the file offset maps to a sparse region, osd_do_bio()
    submits no bio, the early-release loop runs, and
    LASSERT(PageLocked(page)) panics the server.

  - Write path: if a subsequent write RPC obtains the same DIO folio,
    osd_write_commit() hits LASSERT(PageLocked(lnb[i].lnb_page)).
    This is the scenario reproduced by toggling read_cache_enable=0
    while concurrent writes are in flight (test_155g + test_63a).

Guard the unlock_page() call with !PagePrivate2(), mirroring the
identical guard already present in the early-release loop below.

Fixes: e790df5fa38d ("LU-13309 osd-ldiskfs: speedup osd_bufs_get/put")
TLC-bug-id: TLU-184
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Change-Id: I58cecf2cdf89f41a01fdeb14e2e304e9b6588f94

Longstanding (signal older than a week)

(12)
67385 master J –B ✓T ✗1R 0/2
LU-20232 build: dkms-deb should only build dkms packages
enforced failed: full-dkms
6 unresolved S +10 −10
12d
enforced failed: full-dkms
6 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
failed enforced testplatformdetail
full-dkms failed 2× RHEL 8.10 / x86_64 ran 2 tests. 1 tests failed: lustre-initialization. session
build #130290 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Shaun Tancheff, Minh
patchsets: PS1 07-20 PS2 08-25 Minh
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre COMMIT_MSG:18 — (minor) The body covers the Architecture change, the -g flag, the configure-stamp dependencies, the install-data-local switch and the mv lis
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(minor) The body covers the Architecture change, the -g flag, the configure-stamp dependencies, the install-data-local switch and the mv list, but not the new `rm -rf $(CURDIR)/debian/$(DKMS_PKG)/lib` in the DKMS rule. Worth a sentence saying it undoes the module-install side effect of install-data-local, otherwise it reads as an unrelated hunk.
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre COMMIT_MSG:22 — (minor) This second Fixes: tag looks like it points at the wrong commit. 4ff30bece1 touched no file under debian/, and its config/Makefile.d
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(minor) This second Fixes: tag looks like it points at the wrong commit. 4ff30bece1 touched no file under debian/, and its config/Makefile.dkms-deb is a verbatim move of the dkms-debs recipe out of autoMakefile.am - the dpkg-buildpackage line and the mv list are byte-identical to what was in autoMakefile.am before it. None of the four things this patch changes (control.main Architecture, -g, the configure-stamp dependencies, install-data-local) live in code that 4ff30bece1 introduced.

The header install had already been broken before it: `AC_CONFIG_FILES` never generated an `include/Makefile`, so `$(MAKE) install -C include` could not work from the moment 9bb1727422 ("LU-18687 build: sync header location") collapsed the two `-C lustre/include` / `-C lnet/include` calls into it. If a second tag is wanted, that is probably the one:

    Fixes: 9bb1727422 ("LU-18687 build: sync header location")

The first tag (8cf1563a7c) does check out - it removed lustre/include/Makefile.am and so broke `install -C lustre/include`.
reply PS2 2026-08-27 00:36 Gerrit AI review for Lustre COMMIT_MSG:24 — (minor) After the rebase described just above, does this patch still fix anything these two tags point at? The body says 377ce8531a already
Gerrit AI review for Lustre PS2 · 2026-08-27 00:36
(minor) After the rebase described just above, does this patch still fix anything these two tags point at? The body says 377ce8531a already landed the header-installation fix and that this revision no longer touches it, and nothing in the diff is header related any more.

What is left is a change to which packages `make dkms-debs` emits and to the `Architecture:` field of `lustre-client-modules-dkms`. That target produced working DKMS packages before this patch, so this reads as a build-scope/packaging cleanup rather than a fix for a breakage either referenced commit introduced.

If that is right, both Fixes: lines can be dropped. If one is still meant to apply, it would help to say in the body what remains broken.
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre rules:498 — (suggestion) install-data-local is an automake hook, and in autoMakefile.am it is not headers-only - the `if MODULES` half creates $(modulef
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(suggestion) install-data-local is an automake hook, and in autoMakefile.am it is not headers-only - the `if MODULES` half creates $(modulefsdir)/$(modulenetdir) and copies every .ko found under lustre/, ldiskfs/ and lnet/ into them. Modules are enabled here (configure runs with --with-linux), so a `./configure && make && make dkms-debs` tree will have the whole module set copied into the staging dir just to be deleted again two lines below.

A small dedicated target in autoMakefile.am (say install-headers, holding just the three header loops) would decouple the DKMS package from whatever else install-data-local grows later.
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre rules:500 — (minor) This cleanup silently depends on modulefsdir/modulenetdir starting with /lib - they are derived from `moduledir="/lib/modules/${LINU
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(minor) This cleanup silently depends on modulefsdir/modulenetdir starting with /lib - they are derived from `moduledir="/lib/modules/${LINUXRELEASE}/${KMP_MODDIR}"` in config/lustre-build-linux.m4. That holds today, but if that path ever moves under /usr/lib the stale .ko files would ship inside the DKMS package instead. A comment naming the reason would help, or better, don't create them in the first place (see the note above).
reply PS2 2026-08-27 00:36 Gerrit AI review for Lustre rules:486 — (minor) With build-indep reduced to configure-stamp, nothing is compiled during the build phase of a `-g` run any more, so this rule's `$(MA
Gerrit AI review for Lustre PS2 · 2026-08-27 00:36
(minor) With build-indep reduced to configure-stamp, nothing is compiled during the build phase of a `-g` run any more, so this rule's `$(MAKE) install DESTDIR=.../_tmp_` a few lines down becomes the first thing that compiles the tree. automake resolves `install` through `install-am: all-am`, so lib/, lnet/utils/, lustre/utils/ and lustre/tests/ all get built right there.

Two side effects of that move:

- build-stamp used `$(MAKE) -C $(BUILDDIR) $(PMAKEARGS)`; this call has no `$(PMAKEARGS)`, so the whole userspace build is now single-threaded.
- dpkg-buildpackage runs binary-indep under fakeroot (no Rules-Requires-Root in debian/control), so the compile now happens under fakeroot too, whereas before it ran in the plain build phase.

Would it be cleaner to give build-indep its own stamp that does the `$(MAKE) $(PMAKEARGS)` and leave this rule to just stage and package?
owner Timothy Day · uploader Minh · PS2 uploaded 14d ago · NEW · open in Gerrit ↗
commit message
LU-20232 build: dkms-deb should only build dkms packages

Make the lustre-client-modules-dkms package Architecture: all,
since the DKMS package ships source and builds modules on the
target host rather than shipping prebuilt binaries.

Build only the arch-independent packages (source + DKMS) for
the dkms-debs target: pass -g to dpkg-buildpackage, depend
on configure-stamp instead of build-stamp for build-indep and
the source/DKMS binary rules. Trim the mv list to the packages
that are actually produced.

Rebased on top of 377ce8531a ("LU-20232 dkms: restore dkms-debs
target"), which already fixes DKMS header installation via a
different mechanism; this patch no longer touches that part.

Test-Parameters: trivial testgroup=full-dkms
Fixes: 8cf1563a7c ("LU-18876 build: remove Lustre header autoMakefiles")
Fixes: 4ff30bece1 ("LU-18687 build: refactor the top-level Makefile")
Signed-off-by: Timothy Day <timday@thelustrecollective.com>
Change-Id: I287da7cff8e743b84e7e5d7f1344bdcee325db1c
68338 master J !B ✓T ✓R 0/2−
LU-19404 lnet: retry netlink dump on ENOBUFS
James Simmons voted -1
5 unresolved M +107 −3
14d
James Simmons voted -1
5 unresolved thread(s) await your reply — last from James Simmons
no vote yet from Alexey Lyashkov, Serguei Smirnov, Andreas Dilger
janitor run: 5 failing config(s), none unique to this patch — janitor results
reviews: James Simmons -1 2026-08-25 15:42
no vote yet: Alexey Lyashkov, Serguei Smirnov, Andreas Dilger
patchsets: PS1 08-25 PS2 08-25
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:891 — Which is better? The error messages of libnl or the error messages of strerror(). I went with the libnl ones.
James Simmons PS2 · 2026-08-25 16:11
Which is better? The error messages of libnl or the error messages of strerror(). I went with the libnl ones.
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:1009 — We could set data->error = -errno;
James Simmons PS2 · 2026-08-25 16:11
We could set data->error = -errno;
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:1016 — According to libnl library code nl_syserr2nlerr() maps NLE_NOMEM to ENOBUFS. So if rc is a -NLE_* error then the correct thing to do is
James Simmons PS2 · 2026-08-25 16:11
According to libnl library code nl_syserr2nlerr() maps NLE_NOMEM to ENOBUFS. So if rc is a -NLE_* error then the correct thing to do is

data->errmsg = nl_geterror(rc);
data->error = -errno;

NLE_NOMEM is broken for you?
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:1019 — Yes I never set data->error :-(
James Simmons PS2 · 2026-08-25 16:11
Yes I never set data->error :-(
reply PS2 2026-08-25 16:13 James Simmons lnetctl.c:2431 — we need to allocate large cb->min_dump_alloc. Otherwise we get this retry loops. Ugh what a mess.
James Simmons PS2 · 2026-08-25 16:11
This is why I told Alexey
James Simmons PS2 · 2026-08-25 16:13
we need to allocate large cb->min_dump_alloc. Otherwise we get this retry loops. Ugh what a mess.
owner Minh · uploader Minh · PS2 uploaded 15d ago · NEW · open in Gerrit ↗
commit message
LU-19404 lnet: retry netlink dump on ENOBUFS

lnetctl net show -v and other DLC netlink dumps can fail
transiently with exit 234, empty output, and a cYAML error
claiming "errno: 0" / "Out of memory" on a host with plenty of
free memory. A rerun succeeds.

lnet_net_show_start() sets cb->min_dump_alloc = U16_MAX, requiring
an order-5 alloc_skb() per dump chunk. Above
PAGE_ALLOC_COSTLY_ORDER this fails under memory fragmentation
regardless of available memory, stalling the dump with ENOBUFS.
libnl reports this as NLE_NOMEM ("Out of memory"), and the read
handler never records an errno for it, hence "errno: 0". The
dump is unrecoverable on that socket; only a fresh request
recovers.

Retry the whole request on a fresh socket, bounded with
exponential backoff, when a dump-mode request fails with
ENOBUFS/ENOMEM. Report the real errno instead of libnl's
conflating NLE_NOMEM text.

Adds sanity-lnet test_306, which reproduces the failure reliably
under concurrent `lnetctl net show -v` plus discovery churn.

Fixes: fff650726b2b ("LU-13642 lnet: Allow dynamic IP specification")
TLC-bug-id: TLU-226
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Change-Id: I6906afe6cca3f80b556152a94ed627d6b75631e9
67804 master J –B ✓T ✓R 1/2
LU-20560 build: quiet checkpatch spelling nags
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
2 unresolved S +40 −2
20d
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
no vote yet from Oleg Drokin, Timothy Day
build #129761 SUCCESS
reviews: Andreas Dilger +1 2026-08-19 20:10
no vote yet: Oleg Drokin, Timothy Day
patchsets: PS1 08-07 PS2 08-07 PS3 08-10 Andreas Dilger PS4 08-19 Andreas Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2026-08-19 21:28 Gerrit AI review for Lustre checkpatch.pl:3687 — (style) This isn't a bug, but a bare string on the right of `=~` is compiled as a regex, so the `*` quantifies the preceding `/` rather than
Gerrit AI review for Lustre PS4 · 2026-08-19 21:28
(style) This isn't a bug, but a bare string on the right of `=~` is compiled as a regex, so the `*` quantifies the preceding `/` rather than standing in for the parameter name. It does happen to cover both dictionary spellings (`man4 page` and `man4/ page`), which `m{/man4/? page}` would state outright. As written, an entry later worded `Documentation/man4/<param>.4 page` would silently stop matching and turn the block back off.
reply PS4 2026-08-19 21:28 Gerrit AI review for Lustre checkpatch.pl:3688 — (defect) The two-argument macro forms never reach the parameter name here.
Gerrit AI review for Lustre PS4 · 2026-08-19 21:28
(defect) The two-argument macro forms never reach the parameter name here.

In the real macro names `_SEQ_FOPS_` is followed by `RO_`/`RW_`, so the `TYPE\(\s*\w+,\s*` branch cannot match and `\w*\(` wins instead, capturing the first argument. That argument is the module prefix, not the parameter: lprocfs_status.h:795 expands `_RO_TYPE(name, type)` to `LDEBUGFS_SEQ_FOPS_RO(name##_##type)`, and the page is named `<name>.<type>.4`. `_WR_ONLY(name, type)` has no branch of its own and takes the same path.

The trailing `_` also excludes the bare `LPROC_SEQ_FOPS(name)` form, which spelling.txt:208 does nag on (lustre/quota/qsd_lib.c:179).

Checked against this commit with both `Documentation/man4/at_max.4` and `mdt.at_max.4` on disk:

    +LDEBUGFS_SEQ_FOPS_RW_TYPE(mdt, at_max);
    WARNING:TYPO_SPELLING: ... 'create Documentation/man4/ page for this parameter'?

`LUSTRE_RW_ATTR(at_max)` in the same patch is quiet, so the escape hatch works only for the single-argument forms. Since `_RO_TYPE`/`_RW_TYPE` are most of the `LDEBUGFS_SEQ_FOPS_*` uses in the tree, the commit message's claim to cover the `LDEBUGFS_SEQ_FOPS_` entries doesn't hold for them.

Would `_SEQ_FOPS(?:_(?:\w+_TYPE|WR_ONLY)\(\s*\w+,\s*|_?\w*\()` catch all the forms? That captures `at_max`/`force_reint`/`qsd_enabled` on the cases above, and the existing `{,*.}$param.4` glob then finds both the plain and the dotted page name.
owner Minh · uploader Andreas Dilger · PS4 uploaded 20d ago · NEW · open in Gerrit ↗
commit message
LU-20560 build: quiet checkpatch spelling nags

LUSTRE_{RO,RW,WO}_ATTR, MODULE_PARM_DESC, and LDEBUGFS_SEQ_FOPS_
spelling.txt entries nag for each new sysfs parameter to add a
Documentation/man4/ page, but complain even if the patch adds
or modifies the relevant man4/ page. Suppress this warning if
Documentation/man4/<PARAM>.4 exists or is added by the patch.

Also exempt the spelling dictionaries from their own typo scan.
An addition to the spelling file would trip its own entry. Do not
generate a warning when adding a new entry to these files.  Match
via a "scripts/spelling" regexp so that it works with both the
Lustre and in-kernel spelling files to facilitate upstream merge.

TLC-bug-id: TLU-208
Fixes: 1792d49a9660 ("LU-17231 doc: Create script to generate man pages")
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Change-Id: I5d4fe5e7a2e2474dfa98e992034a54ff92f1f2c3
65199 master J ✗1B ✓T ✗1R 0/2
LU-19768 obdclass: table-driven netlink framework
janitor: 1 test failure unique to this patch — sanity-quota@ldiskfs+DNE:test_80
1 unique failure 17 unresolved L +494 −43
24d
janitor: 1 test failure unique to this patch — sanity-quota@ldiskfs+DNE:test_80
enforced failed: review-dne-zfs-part-4
17 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-quota@ldiskfs+DNE:test_80seen in 67 other reviews
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 10.1 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
build #129426 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Chris Horn, Andreas Dilger, Minh
patchsets:
+3 earlier PS1 04-09 PS2 07-22 PS3 07-29
PS4 08-14 Minh PS5 08-14 Minh PS6 08-14 Minh PS7 08-14 Minh PS8 08-14 Minh
threads: 17 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS8 2026-08-14 23:29 Andreas Dilger COMMIT_MSG:25 — (minor) duplicate `Signed-off-by: Minh`...
Andreas Dilger PS8 · 2026-08-14 23:29
(minor) duplicate `Signed-off-by: Minh`...
reply PS8 2026-08-14 23:29 Andreas Dilger lustre_kernelcomm.h:267 — (style) instead of putting this here, it would be better to `#define GENRADIX_NODE_SIZE PAGE_SIZE` in the compat code and use that instead o
Andreas Dilger PS8 · 2026-08-14 23:29
(style) instead of putting this here, it would be better to `#define GENRADIX_NODE_SIZE PAGE_SIZE` in the compat code and use that instead of `LUSTRE_NL_ENTRY_SIZE_MAX`.
reply PS1 2026-04-10 19:43 James Simmons kernelcomm.c:1413 — So the table stuff is meant to obd specific but this is really really generic. The code seems to be a mix of both behaviors of being obd spe
James Simmons PS1 · 2026-04-10 19:43
So the table stuff is meant to obd specific but this is really really generic. The code seems to be a mix of both behaviors of being obd specific and then super generic. I would prefer that it was only obd specific. Its not going to be easy to make dump_one() flexible for all cases. So I'm not sold on a dump function.
reply PS1 2026-04-10 19:43 James Simmons kernelcomm.c:1455 — Same here. While its labled as obd specific its really super generic.
James Simmons PS1 · 2026-04-10 19:43
Same here. While its labled as obd specific its really super generic.
reply PS2 2026-07-28 10:31 Gerrit AI review for Lustre kernelcomm.c:1341 — `ops->collect()` is called with `obd_device_lock()` held, and that is `xa_lock(&obd_devs)` -- a spinlock. So a collect callback can't sleep,
Gerrit AI review for Lustre PS2 · 2026-07-28 10:31
`ops->collect()` is called with `obd_device_lock()` held, and that is `xa_lock(&obd_devs)` -- a spinlock. So a collect callback can't sleep, and anything it allocates (the natural implementation is `genradix_ptr_alloc()`, which existing callers such as tgt_mount.c use with GFP_KERNEL) has to be GFP_ATOMIC.

Nothing in the descriptor comment in lustre_kernelcomm.h says this, and the header also doesn't say that `collect` owns updating `ctx->count` and must store entries at 0..count-1 (both the cleanup loop here and `lustre_obd_nl_dump()` assume that). Since there is no in-tree implementation yet to copy from, could the contract be spelled out with the struct?

Holding the spinlock across the whole device scan is also a change in character from the existing handlers -- `lustre_stats_start()` does its scan outside `obd_device_lock()`.
reply PS2 2026-07-28 10:31 Gerrit AI review for Lustre kernelcomm.c:1350 — `cb->min_dump_alloc` is set to a fixed `ops->min_alloc` regardless of how many entries `collect()` gathered. The two existing handlers scale
Gerrit AI review for Lustre PS2 · 2026-07-28 10:31
`cb->min_dump_alloc` is set to a fixed `ops->min_alloc` regardless of how many entries `collect()` gathered. The two existing handlers scale it: `lustre_device_list_start()` uses `class_obd_devs_count() * DEVICE_VALUE_PACKET_SIZE`, and `lustre_stats_start()` accumulates `STATS_MSG_DATASET_SIZE * rc`. With a constant, any node with more devices than the descriptor author assumed overflows the skb -- and per the comment below, that ends the dump with an error rather than continuing. Should this be `ops->min_alloc * ctx->count` plus the key-table size?
reply PS2 2026-08-14 23:29 Andreas Dilger kernelcomm.c:1407 — This looks like a reasonable suggestion?
Gerrit AI review for Lustre PS2 · 2026-07-28 10:31
When the skb fills, this returns -EMSGSIZE and the whole dump is aborted, dropping every entry from `ctx->index` onwards. The usual pattern -- and what `lustre_device_list_dump()` does -- is to stop adding messages and return the byte count so netlink flushes the skb and re-enters the dump:

    return rc < 0 ? rc : msg->len;

`ctx->index` is already carried in the context, so resumption would work; only the return value is missing. Same for the `dump_one()` failure just below, where `rc` may well be -EMSGSIZE too.

No caller exists yet, so this isn't reachable today, but it looks worth fixing before the first command is wired up.
Andreas Dilger PS2 · 2026-08-14 23:29
This looks like a reasonable suggestion?
reply PS3 2026-08-14 23:29 Andreas Dilger kernelcomm.c:1280 — This also seems reasonable
Gerrit AI review for Lustre PS3 · 2026-07-30 06:01
(minor) This is the same loop that is still open-coded in `lustre_stats_dump()` above. The patch adds the `nla_put` return checks to that copy and lands a second, identical copy here, so a future fix to one will miss the other -- which is the opposite of what the commit message says the change does.

Could `lustre_stats_dump()` just call this?

    rc = lustre_nl_put_dataset(msg, stats, LUSTRE_STATS_ATTR_DATASET);
    if (rc)
        GOTO(out_cancel, rc);
Andreas Dilger PS3 · 2026-08-14 23:29
This also seems reasonable
reply PS8 2026-08-15 13:12 Gerrit AI review for Lustre kernelcomm.c:32 — (style) dropping the `static struct genl_family lustre_family;` forward declaration left two blank lines here; one is enough.
Gerrit AI review for Lustre PS8 · 2026-08-15 13:12
(style) dropping the `static struct genl_family lustre_family;` forward declaration left two blank lines here; one is enough.
reply PS8 2026-08-15 13:12 Gerrit AI review for Lustre kernelcomm.c:641 — (style) not a bug, but `stats_dataset_list` becomes a kernel-global symbol here with no subsystem prefix, which is easy to collide with. `lu
Gerrit AI review for Lustre PS8 · 2026-08-15 13:12
(style) not a bug, but `stats_dataset_list` becomes a kernel-global symbol here with no subsystem prefix, which is easy to collide with. `lustre_stats_dataset_list` would match `lustre_family` and `lustre_stats_dump()` alongside it. The extern in lustre_kernelcomm.h would need the same rename.
reply PS8 2026-08-14 23:29 Andreas Dilger kernelcomm.c:841 — (style) doesn't need a whole saga. Just a short comment like `copy by element, struct copy only copies fixed header` or maybe use `unsafe_m
Andreas Dilger PS8 · 2026-08-14 23:29
(style) doesn't need a whole saga.  Just a short comment like `copy by element, struct copy only copies fixed header` or maybe use `unsafe_memcpy()` to avoid the warning.
reply PS8 2026-08-15 13:12 Gerrit AI review for Lustre lprocfs_status.c:1538 — (minor) This repeats the xa_lock()/__xa_alloc()/atomic_inc() sequence from ldebugfs_stats_alloc() verbatim, so the two copies can drift apar
Gerrit AI review for Lustre PS8 · 2026-08-15 13:12
(minor) This repeats the xa_lock()/__xa_alloc()/atomic_inc() sequence from ldebugfs_stats_alloc() verbatim, so the two copies can drift apart.

This was raised on the first revision and still applies: ldebugfs_stats_alloc() could compute its truncated source string and then call ldebugfs_stats_register(), leaving only the debugfs file creation behind and keeping one copy of the xarray insertion.
owner Timothy Day · uploader Minh · PS8 uploaded 25d ago · NEW · open in Gerrit ↗
commit message
LU-19768 obdclass: table-driven netlink framework

Introduce a reusable table-driven netlink handler framework
(lustre_nl_obd_ops / lustre_nl_ctx) that factors out the common
start/dump/done pattern shared by commands that iterate OBD devices.

Each command supplies a descriptor with collect, dump_one, and
optional release callbacks.

Also fix several bugs in the existing stats dump path:
- Add missing nla_put return-value checks
- Fix an off-by-one in key-list sizing
- Fix a typo ("togther" -> "together").

TLC-bug-id: TLU-56
Signed-off-by: Timothy Day <timday@thelustrecollective.com>
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Change-Id: Ic3267111785fe79761f0673477149f7fca470a35
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
30818 master J –B ✗T –R 0/2
LU-10478 build: use ZOL rpms to build lustre
mine build failure
stalled 400d M +85 −1
400d
no vote yet: Andreas Dilger
owner Minh Diep · uploader Minh Diep · PS14 uploaded 3161d ago · NEW · open in Gerrit ↗
commit message
LU-10478 build: use ZOL rpms to build lustre

not for review

Test-Parameters: forbuildonly

Change-Id: I1f956c4878a8fa6586e28c5575ef851bf64ac9c0
Signed-off-by: Minh Diep <minh.diep@intel.com>
35441 master J !B ✓T ✗1R 0/2
LU-0000 test: testing LST on el8
mine enforced failed: custom-101
stalled 400d S +12 −2
400d
failed enforced testplatformdetail
custom-101 CentOS 7.0/x86_64, RHEL 8.0/x86_64 ran 3 tests. 1 tests failed: lnet-selftest. session
build #66681 SUCCESS
no vote yet: James Simmons, Amir Shehata, Andreas Dilger
owner Minh Diep · uploader Amir Shehata · PS3 uploaded 2611d ago · NEW · open in Gerrit ↗
commit message
LU-0000 test: testing LST on el8

Test potential fix

Test-Parameters: fortestonly testlist=lnet-selftest clientdistro=el8 serverdistro=el7.6

Change-Id: I346145d22e8268e5dc6f580ac0f8cf479093101c
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
36095 master J –B ✓T ✓R 1/2−
LU-12269 build: patch zfs for rhel8
mine Olaf Faaland voted -1
stalled 400d M +170 −1
400d
Olaf Faaland voted -1
no vote yet from Tony Hutter, Brian Behlendorf, Jian Yu
build #8758 SUCCESS
reviews: Olaf Faaland -1 2020-03-19 17:22 · Nathaniel Clark +1 2020-03-19 15:36
no vote yet: Tony Hutter, Brian Behlendorf, Jian Yu
owner Minh Diep · uploader Minh Diep · PS15 uploaded 2541d ago · NEW · open in Gerrit ↗
commit message
LU-12269 build: patch zfs for rhel8

We need to patch zfs to build rhel8
* https://github.com/zfsonlinux/zfs/pull/8851
* https://github.com/zfsonlinux/zfs/pull/9310

Test-Parameters: trivial \
envdefinitions=SANITY_EXCEPT="421a 817" \
clientdistro=el8 serverdistro=el8 fstype=zfs \
testlist=sanity

Change-Id: I791c3a985b52a1a4f0740b7880dee852042da016
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
48221 master J –B ✗T –R 0/2
LU-16095 build: fix lbuild not depending on installed kernel-devel
mine build failure (#89116)
stalled 400d M +65 −22
400d
build #89116 FAILURE
no vote yet: Jian Yu
patchsets:
+12 earlier PS1 08-15 PS2 08-15 PS3 08-15 PS4 08-15 PS5 08-16 PS6 08-16 PS7 08-16 PS8 08-16 PS9 08-16 PS10 08-19 PS11 08-19 PS12 08-19
PS13 08-20 PS14 08-20 PS15 08-20 PS16 08-20 PS17 08-20
owner Minh Diep · uploader Minh Diep · PS17 uploaded 1481d ago · NEW · open in Gerrit ↗
commit message
LU-16095 build: fix lbuild not depending on installed kernel-devel

Move the find-require/find-provide in lbuild-distro for more
customizable control

Test-Parameters: trivial clientdistro=sles12sp5 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity
Test-Parameters: trivial clientdistro=sles15sp3 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity
Test-Parameters: trivial clientdistro=el7.9 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity
Test-Parameters: trivial clientdistro=el8.6 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity

Change-Id: Icd990dc83f9968e814b12c6b1abf614649db4d41
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
34838 master J –B ✗T –R 0/2−
LU-0000 build: include IB_OPTIONS in configure step
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 401d S +11 −10
401d
needs rebase — checkpatch: cannot be cherry-picked
build aborted (#64327)
build #64327 ABORTED
no vote yet: Andreas Dilger
owner Minh Diep · uploader Minh Diep · PS7 uploaded 2679d ago · NEW · open in Gerrit ↗
commit message
LU-0000 build: include IB_OPTIONS in configure step

Test-Parameters: forbuildonly

Change-Id: I479ee851ec595241ff1d2b9153168c40c9f48f36
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
36279 master J –B ✓T –R 0/2−
LU-0000 build: save and reuse cached file
mine Andreas Dilger voted -1
stalled 407d S +14 −1
407d
Andreas Dilger voted -1
build OK — testing in progress (typically 6–14h)
build #8735 SUCCESS
reviews: Andreas Dilger -1 2023-01-04 17:16
owner Minh Diep · uploader Minh Diep · PS3 uploaded 2542d ago · NEW · open in Gerrit ↗
commit message
LU-0000 build: save and reuse cached file

Test-Parameters: forbuildonly
Change-Id: I5b869d16818a59d3b3b1a404353ba29c3838323c
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
51168 b2_15 J ✓B ✓T ✗2R 0/1−
LU-15129 tests: sanity-quota_75_dom fix
mine enforced failed: custom-1002, review-ldiskfs-dne-arm
mtg stalled 666d S +6 −6
666d
enforced failed: custom-1002, review-ldiskfs-dne-arm
Andreas Dilger voted -1
failed enforced testplatformdetail
custom-1002 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity-quota. session
review-ldiskfs-dne-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
build #96622 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2023-11-30 22:36
no vote yet: Sergey Cheremencev
patchsets: PS1 05-30 PS2 05-30 PS3 06-12 Andreas Dilger PS4 08-02
owner Minh Diep · uploader Minh Diep · PS4 uploaded 1133d ago · NEW · backport · open in Gerrit ↗
commit message
LU-15129 tests: sanity-quota_75_dom fix

oflag=sync causes dd to write page by page instead
of sending several pages in RPC. Furthermore, when
granted space becomes closer to soft_limit(i.e. over
9MB if soft_limit is 10MB), OST can not preacquire
space anymore. Also OST could acquire only requested
amount of space - see qmt_alloc_expand. Thus OST has
to send quota acquire request at MDT for each BRW request
from the client. Sometimes 20 seconds is not enough to write
10MB. Change oflag=sync with conv=fsync to reduce the number
of RPCs between the client and OST and between QSDs and QMT.
One fsync at close should help to avoid timeout failure.

Lustre-change: https://review.whamcloud.com/50164
Lustre-commit: 7d05a687ee5d4f4b95585244a7f60394475fe0ba

Test-Parameters: trivial testlist=sanity-quota
Test-Parameters: testlist=sanity-quota env=ONLY=75,ONLY_REPEAT=50
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: Iad363fdc8a0984861055c295ea9cc3f23110fd9f
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
(cherry picked from commit 7d05a687ee5d4f4b95585244a7f60394475fe0ba)
35480 b2_12 B ✓T ✗1R 1/1−
LU-11803 obd: replace class_uuid with linux kernel version.
mine enforced failed: review-dne-zfs-part-4
stalled 729d M +114 −45
729d
enforced failed: review-dne-zfs-part-4
Andreas Dilger voted -1
failed enforced testplatformdetail
review-dne-zfs-part-4 CentOS 7.0/x86_64 ran 10 tests. 1 tests failed: sanity-quota. session
build #6708 SUCCESS
reviews: Yang Sheng +1 2020-05-17 05:52 · Andreas Dilger -1 2020-05-24 07:32
no vote yet: Gu Zheng, Petros Koutoupis, Ben Evans
owner Minh Diep · uploader Minh Diep · PS1 uploaded 2616d ago · NEW · backport · open in Gerrit ↗
commit message
LU-11803 obd: replace class_uuid with linux kernel version.

We can replace the lustre custom class_uuid_t with the linux
kernels uuid handling.

Lustre-change: https://review.whamcloud.com/33916
Lustre-commit: 604c266a175b72500ef99793652b64ed4f842b2c

Change-Id: I9a59b0b6027ccb95994a87f3a5dcdf80a8a56480
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Petros Koutoupis <pkoutoupis@cray.com>
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Gu Zheng <gzheng@ddn.com>
0 watched
Nothing watched. Add a change above — e.g. after rebasing someone's patch — and its build/test state shows up here.
9 open

Failed / broken

(6)
30818 master J –B ✗T –R 0/2
LU-10478 build: use ZOL rpms to build lustre
build failure
stalled 400d M +85 −1
400d
no vote yet: Andreas Dilger
owner Minh Diep · uploader Minh Diep · PS14 uploaded 3161d ago · NEW · open in Gerrit ↗
commit message
LU-10478 build: use ZOL rpms to build lustre

not for review

Test-Parameters: forbuildonly

Change-Id: I1f956c4878a8fa6586e28c5575ef851bf64ac9c0
Signed-off-by: Minh Diep <minh.diep@intel.com>
35441 master J !B ✓T ✗1R 0/2
LU-0000 test: testing LST on el8
enforced failed: custom-101
stalled 400d S +12 −2
400d
failed enforced testplatformdetail
custom-101 CentOS 7.0/x86_64, RHEL 8.0/x86_64 ran 3 tests. 1 tests failed: lnet-selftest. session
build #66681 SUCCESS
no vote yet: James Simmons, Amir Shehata, Andreas Dilger
owner Minh Diep · uploader Amir Shehata · PS3 uploaded 2611d ago · NEW · open in Gerrit ↗
commit message
LU-0000 test: testing LST on el8

Test potential fix

Test-Parameters: fortestonly testlist=lnet-selftest clientdistro=el8 serverdistro=el7.6

Change-Id: I346145d22e8268e5dc6f580ac0f8cf479093101c
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
48221 master J –B ✗T –R 0/2
LU-16095 build: fix lbuild not depending on installed kernel-devel
build failure (#89116)
stalled 400d M +65 −22
400d
build #89116 FAILURE
no vote yet: Jian Yu
patchsets:
+12 earlier PS1 08-15 PS2 08-15 PS3 08-15 PS4 08-15 PS5 08-16 PS6 08-16 PS7 08-16 PS8 08-16 PS9 08-16 PS10 08-19 PS11 08-19 PS12 08-19
PS13 08-20 PS14 08-20 PS15 08-20 PS16 08-20 PS17 08-20
owner Minh Diep · uploader Minh Diep · PS17 uploaded 1481d ago · NEW · open in Gerrit ↗
commit message
LU-16095 build: fix lbuild not depending on installed kernel-devel

Move the find-require/find-provide in lbuild-distro for more
customizable control

Test-Parameters: trivial clientdistro=sles12sp5 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity
Test-Parameters: trivial clientdistro=sles15sp3 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity
Test-Parameters: trivial clientdistro=el7.9 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity
Test-Parameters: trivial clientdistro=el8.6 \
env=SANITY_EXCEPT="56oc 430c 817" testlist=sanity

Change-Id: Icd990dc83f9968e814b12c6b1abf614649db4d41
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
34838 master J –B ✗T –R 0/2−
LU-0000 build: include IB_OPTIONS in configure step
needs rebase — checkpatch: cannot be cherry-picked
stalled 401d S +11 −10
401d
needs rebase — checkpatch: cannot be cherry-picked
build aborted (#64327)
build #64327 ABORTED
no vote yet: Andreas Dilger
owner Minh Diep · uploader Minh Diep · PS7 uploaded 2679d ago · NEW · open in Gerrit ↗
commit message
LU-0000 build: include IB_OPTIONS in configure step

Test-Parameters: forbuildonly

Change-Id: I479ee851ec595241ff1d2b9153168c40c9f48f36
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
51168 b2_15 J ✓B ✓T ✗2R 0/1−
LU-15129 tests: sanity-quota_75_dom fix
enforced failed: custom-1002, review-ldiskfs-dne-arm
mtg stalled 666d S +6 −6
666d
enforced failed: custom-1002, review-ldiskfs-dne-arm
Andreas Dilger voted -1
failed enforced testplatformdetail
custom-1002 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity-quota. session
review-ldiskfs-dne-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
build #96622 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2023-11-30 22:36
no vote yet: Sergey Cheremencev
patchsets: PS1 05-30 PS2 05-30 PS3 06-12 Andreas Dilger PS4 08-02
owner Minh Diep · uploader Minh Diep · PS4 uploaded 1133d ago · NEW · backport · open in Gerrit ↗
commit message
LU-15129 tests: sanity-quota_75_dom fix

oflag=sync causes dd to write page by page instead
of sending several pages in RPC. Furthermore, when
granted space becomes closer to soft_limit(i.e. over
9MB if soft_limit is 10MB), OST can not preacquire
space anymore. Also OST could acquire only requested
amount of space - see qmt_alloc_expand. Thus OST has
to send quota acquire request at MDT for each BRW request
from the client. Sometimes 20 seconds is not enough to write
10MB. Change oflag=sync with conv=fsync to reduce the number
of RPCs between the client and OST and between QSDs and QMT.
One fsync at close should help to avoid timeout failure.

Lustre-change: https://review.whamcloud.com/50164
Lustre-commit: 7d05a687ee5d4f4b95585244a7f60394475fe0ba

Test-Parameters: trivial testlist=sanity-quota
Test-Parameters: testlist=sanity-quota env=ONLY=75,ONLY_REPEAT=50
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: Iad363fdc8a0984861055c295ea9cc3f23110fd9f
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
(cherry picked from commit 7d05a687ee5d4f4b95585244a7f60394475fe0ba)
35480 b2_12 B ✓T ✗1R 1/1−
LU-11803 obd: replace class_uuid with linux kernel version.
enforced failed: review-dne-zfs-part-4
stalled 729d M +114 −45
729d
enforced failed: review-dne-zfs-part-4
Andreas Dilger voted -1
failed enforced testplatformdetail
review-dne-zfs-part-4 CentOS 7.0/x86_64 ran 10 tests. 1 tests failed: sanity-quota. session
build #6708 SUCCESS
reviews: Yang Sheng +1 2020-05-17 05:52 · Andreas Dilger -1 2020-05-24 07:32
no vote yet: Gu Zheng, Petros Koutoupis, Ben Evans
owner Minh Diep · uploader Minh Diep · PS1 uploaded 2616d ago · NEW · backport · open in Gerrit ↗
commit message
LU-11803 obd: replace class_uuid with linux kernel version.

We can replace the lustre custom class_uuid_t with the linux
kernels uuid handling.

Lustre-change: https://review.whamcloud.com/33916
Lustre-commit: 604c266a175b72500ef99793652b64ed4f842b2c

Change-Id: I9a59b0b6027ccb95994a87f3a5dcdf80a8a56480
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Petros Koutoupis <pkoutoupis@cray.com>
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Gu Zheng <gzheng@ddn.com>

Review feedback — your turn

(2)
36095 master J –B ✓T ✓R 1/2−
LU-12269 build: patch zfs for rhel8
Olaf Faaland voted -1
stalled 400d M +170 −1
400d
Olaf Faaland voted -1
no vote yet from Tony Hutter, Brian Behlendorf, Jian Yu
build #8758 SUCCESS
reviews: Olaf Faaland -1 2020-03-19 17:22 · Nathaniel Clark +1 2020-03-19 15:36
no vote yet: Tony Hutter, Brian Behlendorf, Jian Yu
owner Minh Diep · uploader Minh Diep · PS15 uploaded 2541d ago · NEW · open in Gerrit ↗
commit message
LU-12269 build: patch zfs for rhel8

We need to patch zfs to build rhel8
* https://github.com/zfsonlinux/zfs/pull/8851
* https://github.com/zfsonlinux/zfs/pull/9310

Test-Parameters: trivial \
envdefinitions=SANITY_EXCEPT="421a 817" \
clientdistro=el8 serverdistro=el8 fstype=zfs \
testlist=sanity

Change-Id: I791c3a985b52a1a4f0740b7880dee852042da016
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
36279 master J –B ✓T –R 0/2−
LU-0000 build: save and reuse cached file
Andreas Dilger voted -1
stalled 407d S +14 −1
407d
Andreas Dilger voted -1
build OK — testing in progress (typically 6–14h)
build #8735 SUCCESS
reviews: Andreas Dilger -1 2023-01-04 17:16
owner Minh Diep · uploader Minh Diep · PS3 uploaded 2542d ago · NEW · open in Gerrit ↗
commit message
LU-0000 build: save and reuse cached file

Test-Parameters: forbuildonly
Change-Id: I5b869d16818a59d3b3b1a404353ba29c3838323c
Signed-off-by: Minh Diep <mdiep@whamcloud.com>

In CI

(0)
nothing here right now

Needs reviewers

(0)
nothing here right now

Waiting on reviewers

(0)
nothing here right now

Ready to land

(1)
35474 b2_12 B ✓T ✓R 1/1
LU-11838 scrub: handle s_uuid change to uuid_t
all green — ready to land (not in b2_12-next yet)
stalled 729d M +54 −75
729d
build #6709 SUCCESS
reviews: Shaun Tancheff +1 2019-07-12 09:10
no vote yet: Andreas Dilger
owner Minh Diep · uploader Minh Diep · PS2 uploaded 2616d ago · NEW · backport · open in Gerrit ↗
commit message
LU-11838 scrub: handle s_uuid change to uuid_t

The 4.12 kernel changed the s_uuid field in struct super_block from
an character array to an uuid_t. While ldiskfs uses it own s_uuid
field in struct ext4_super_block that field is a char array instead
of an uuid. Currently on going effort are being down in the linux
kernel to move to uuid_t so I suspect this will change in the future.
Since this is the case change all the character arrays for uuid
handling to uuid_t located in the scrubbing code. Change osd-ldiskfs
to use the struct super_block uuid, which is equivalent to s_es
version, to handle the uuid_t changes now.

Lustre-change: https://review.whamcloud.com/34689
Lustre-commit: 90fd0cd449b9ae3fbff5a99e0edcf288799037c0

Change-Id: I40643d342b5bc17a6ef922e99b3e8524930822de
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Shaun Tancheff <stancheff@cray.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Minh Diep <mdiep@whamcloud.com>

Parked (WIP / self-blocked)

(0)
nothing here right now

Carrying — uploaded by me, owned by others

6 open

Failed / broken

(3)
67175 master J ✗1B ✓T ✓R 2/2−
LU-19778 osd-ldiskfs: don't unlock DIO folios in osd_read_prep cache-hit path
needs rebase — checkpatch: cannot be cherry-picked
2 unresolved XS +2 −1
5d
needs rebase — checkpatch: cannot be cherry-picked
Oleg Drokin voted -1
2 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Patrick Farrell
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@ldiskfs:test_155seen in 7 other reviews
reviews: Qian Yingjin +1 2026-07-26 13:53 · Andreas Dilger +1 2026-07-26 13:54 · Oleg Drokin -1 2026-08-02 03:33
no vote yet: Patrick Farrell
patchsets: PS1 07-11 PS2 07-26 Andreas Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-14 04:27 Andreas Dilger COMMIT_MSG:15 — We can just remove that sentence instead...
Gerrit AI review for Lustre PS2 · 2026-07-27 21:18
(minor) Can a cached read really mark a DIO folio uptodate? A PagePrivate2 folio is allocated by folio_alloc() in osd_get_page() and never inserted into inode->i_mapping, so get_folio_create()/get_folio_lock() can never return it, and osd_get_page() calls folio_clear_uptodate() on every DIO folio just before handing it out.

The only other places osd-ldiskfs sets PG_uptodate are dio_complete_routine() and osd_write_commit(), both of which run in an earlier RPC and are undone by that folio_clear_uptodate(). That leaves the OBD_FAIL_OST_FAKE_RW SetPageUptodate() two lines above the cache-hit test as the only in-tree way to reach this branch with a DIO folio.

If there is another path, it would be good to name it here, because in that case skipping the read is itself wrong (see the comment on osd_io.c).
Andreas Dilger PS2 · 2026-08-14 04:27
We can just remove that sentence instead...
reply PS2 2026-08-14 04:27 Andreas Dilger COMMIT_MSG:28 — Again, too much LLM-generated explanation is just causing more issues than it solves.
Gerrit AI review for Lustre PS2 · 2026-07-27 21:18
(minor) This reproducer does not seem to match the mechanism above. Neither sanity test_155g nor test_63a sets fail_loc=0x238, and read_cache_enable=0 on its own only selects the DIO path - it does not make a DIO folio uptodate. LU-19778 is filed as "sanity test_428: osd_write_commit() ASSERTION( PageLocked(lnb[i].lnb_page) ) failed".

A sequence that does hold together, and matches the ticket:

    test_399b (test_fake_rw read) truncates $tfile to up to 1GB.
    fsize > od_readcache_max_filesize (default totalram/64), so
    osd_bufs_get() picks cache=false and every lnb gets a DIO folio.
    fail_loc=0x238 then makes every folio uptodate, so all of them take
    the cache-hit branch and get unlocked; iobuf->dr_npages stays 0 so
    the guarded early-release loop never runs.
    test_428 later writes 128MB files (also over the filesize limit) on
    the same service thread and trips the write-side LASSERT.

That also explains why this survived since LU-13309: it needs fail_loc=0x238 *and* the non-cached path, and test_399a/399b only take the non-cached path when the test file exceeds readcache_max_filesize.
Andreas Dilger PS2 · 2026-08-14 04:27
Again, too much LLM-generated explanation is just causing more issues than it solves.
owner Minh · uploader Andreas Dilger · PS2 uploaded 45d ago · NEW · open in Gerrit ↗
commit message
LU-19778 osd-ldiskfs: don't unlock DIO folios in osd_read_prep cache-hit path

DIO folios (PagePrivate2) are per-thread state kept locked in
oti_dio_folios[] for their lifetime.  osd_get_page() only calls
folio_lock() on first allocation; reused slots skip the lock.

When any path marks a DIO folio uptodate before osd_read_prep() sees
it — e.g. OBD_FAIL_OST_FAKE_RW (0x238) calling SetPageUptodate(), or
a cached read hitting the same folio — the cache-hit branch fires and
unlock_page() is called on a folio that must remain locked.

On the next RPC the same thread reuses the (now unlocked) folio without
re-locking it.  Two crash sites follow:

  - Read path: if the file offset maps to a sparse region, osd_do_bio()
    submits no bio, the early-release loop runs, and
    LASSERT(PageLocked(page)) panics the server.

  - Write path: if a subsequent write RPC obtains the same DIO folio,
    osd_write_commit() hits LASSERT(PageLocked(lnb[i].lnb_page)).
    This is the scenario reproduced by toggling read_cache_enable=0
    while concurrent writes are in flight (test_155g + test_63a).

Guard the unlock_page() call with !PagePrivate2(), mirroring the
identical guard already present in the early-release loop below.

Fixes: e790df5fa38d ("LU-13309 osd-ldiskfs: speedup osd_bufs_get/put")
TLC-bug-id: TLU-184
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Change-Id: I58cecf2cdf89f41a01fdeb14e2e304e9b6588f94
67385 master J –B ✓T ✗1R 0/2
LU-20232 build: dkms-deb should only build dkms packages
enforced failed: full-dkms
6 unresolved S +10 −10
12d
enforced failed: full-dkms
6 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
failed enforced testplatformdetail
full-dkms failed 2× RHEL 8.10 / x86_64 ran 2 tests. 1 tests failed: lustre-initialization. session
build #130290 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Shaun Tancheff, Minh
patchsets: PS1 07-20 PS2 08-25 Minh
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre COMMIT_MSG:18 — (minor) The body covers the Architecture change, the -g flag, the configure-stamp dependencies, the install-data-local switch and the mv lis
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(minor) The body covers the Architecture change, the -g flag, the configure-stamp dependencies, the install-data-local switch and the mv list, but not the new `rm -rf $(CURDIR)/debian/$(DKMS_PKG)/lib` in the DKMS rule. Worth a sentence saying it undoes the module-install side effect of install-data-local, otherwise it reads as an unrelated hunk.
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre COMMIT_MSG:22 — (minor) This second Fixes: tag looks like it points at the wrong commit. 4ff30bece1 touched no file under debian/, and its config/Makefile.d
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(minor) This second Fixes: tag looks like it points at the wrong commit. 4ff30bece1 touched no file under debian/, and its config/Makefile.dkms-deb is a verbatim move of the dkms-debs recipe out of autoMakefile.am - the dpkg-buildpackage line and the mv list are byte-identical to what was in autoMakefile.am before it. None of the four things this patch changes (control.main Architecture, -g, the configure-stamp dependencies, install-data-local) live in code that 4ff30bece1 introduced.

The header install had already been broken before it: `AC_CONFIG_FILES` never generated an `include/Makefile`, so `$(MAKE) install -C include` could not work from the moment 9bb1727422 ("LU-18687 build: sync header location") collapsed the two `-C lustre/include` / `-C lnet/include` calls into it. If a second tag is wanted, that is probably the one:

    Fixes: 9bb1727422 ("LU-18687 build: sync header location")

The first tag (8cf1563a7c) does check out - it removed lustre/include/Makefile.am and so broke `install -C lustre/include`.
reply PS2 2026-08-27 00:36 Gerrit AI review for Lustre COMMIT_MSG:24 — (minor) After the rebase described just above, does this patch still fix anything these two tags point at? The body says 377ce8531a already
Gerrit AI review for Lustre PS2 · 2026-08-27 00:36
(minor) After the rebase described just above, does this patch still fix anything these two tags point at? The body says 377ce8531a already landed the header-installation fix and that this revision no longer touches it, and nothing in the diff is header related any more.

What is left is a change to which packages `make dkms-debs` emits and to the `Architecture:` field of `lustre-client-modules-dkms`. That target produced working DKMS packages before this patch, so this reads as a build-scope/packaging cleanup rather than a fix for a breakage either referenced commit introduced.

If that is right, both Fixes: lines can be dropped. If one is still meant to apply, it would help to say in the body what remains broken.
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre rules:498 — (suggestion) install-data-local is an automake hook, and in autoMakefile.am it is not headers-only - the `if MODULES` half creates $(modulef
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(suggestion) install-data-local is an automake hook, and in autoMakefile.am it is not headers-only - the `if MODULES` half creates $(modulefsdir)/$(modulenetdir) and copies every .ko found under lustre/, ldiskfs/ and lnet/ into them. Modules are enabled here (configure runs with --with-linux), so a `./configure && make && make dkms-debs` tree will have the whole module set copied into the staging dir just to be deleted again two lines below.

A small dedicated target in autoMakefile.am (say install-headers, holding just the three header loops) would decouple the DKMS package from whatever else install-data-local grows later.
reply PS1 2026-07-27 21:19 Gerrit AI review for Lustre rules:500 — (minor) This cleanup silently depends on modulefsdir/modulenetdir starting with /lib - they are derived from `moduledir="/lib/modules/${LINU
Gerrit AI review for Lustre PS1 · 2026-07-27 21:19
(minor) This cleanup silently depends on modulefsdir/modulenetdir starting with /lib - they are derived from `moduledir="/lib/modules/${LINUXRELEASE}/${KMP_MODDIR}"` in config/lustre-build-linux.m4. That holds today, but if that path ever moves under /usr/lib the stale .ko files would ship inside the DKMS package instead. A comment naming the reason would help, or better, don't create them in the first place (see the note above).
reply PS2 2026-08-27 00:36 Gerrit AI review for Lustre rules:486 — (minor) With build-indep reduced to configure-stamp, nothing is compiled during the build phase of a `-g` run any more, so this rule's `$(MA
Gerrit AI review for Lustre PS2 · 2026-08-27 00:36
(minor) With build-indep reduced to configure-stamp, nothing is compiled during the build phase of a `-g` run any more, so this rule's `$(MAKE) install DESTDIR=.../_tmp_` a few lines down becomes the first thing that compiles the tree. automake resolves `install` through `install-am: all-am`, so lib/, lnet/utils/, lustre/utils/ and lustre/tests/ all get built right there.

Two side effects of that move:

- build-stamp used `$(MAKE) -C $(BUILDDIR) $(PMAKEARGS)`; this call has no `$(PMAKEARGS)`, so the whole userspace build is now single-threaded.
- dpkg-buildpackage runs binary-indep under fakeroot (no Rules-Requires-Root in debian/control), so the compile now happens under fakeroot too, whereas before it ran in the plain build phase.

Would it be cleaner to give build-indep its own stamp that does the `$(MAKE) $(PMAKEARGS)` and leave this rule to just stage and package?
owner Timothy Day · uploader Minh · PS2 uploaded 14d ago · NEW · open in Gerrit ↗
commit message
LU-20232 build: dkms-deb should only build dkms packages

Make the lustre-client-modules-dkms package Architecture: all,
since the DKMS package ships source and builds modules on the
target host rather than shipping prebuilt binaries.

Build only the arch-independent packages (source + DKMS) for
the dkms-debs target: pass -g to dpkg-buildpackage, depend
on configure-stamp instead of build-stamp for build-indep and
the source/DKMS binary rules. Trim the mv list to the packages
that are actually produced.

Rebased on top of 377ce8531a ("LU-20232 dkms: restore dkms-debs
target"), which already fixes DKMS header installation via a
different mechanism; this patch no longer touches that part.

Test-Parameters: trivial testgroup=full-dkms
Fixes: 8cf1563a7c ("LU-18876 build: remove Lustre header autoMakefiles")
Fixes: 4ff30bece1 ("LU-18687 build: refactor the top-level Makefile")
Signed-off-by: Timothy Day <timday@thelustrecollective.com>
Change-Id: I287da7cff8e743b84e7e5d7f1344bdcee325db1c
65199 master J ✗1B ✓T ✗1R 0/2
LU-19768 obdclass: table-driven netlink framework
janitor: 1 test failure unique to this patch — sanity-quota@ldiskfs+DNE:test_80
1 unique failure 17 unresolved L +494 −43
24d
janitor: 1 test failure unique to this patch — sanity-quota@ldiskfs+DNE:test_80
enforced failed: review-dne-zfs-part-4
17 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-quota@ldiskfs+DNE:test_80seen in 67 other reviews
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 10.1 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
build #129426 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Chris Horn, Andreas Dilger, Minh
patchsets:
+3 earlier PS1 04-09 PS2 07-22 PS3 07-29
PS4 08-14 Minh PS5 08-14 Minh PS6 08-14 Minh PS7 08-14 Minh PS8 08-14 Minh
threads: 17 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS8 2026-08-14 23:29 Andreas Dilger COMMIT_MSG:25 — (minor) duplicate `Signed-off-by: Minh`...
Andreas Dilger PS8 · 2026-08-14 23:29
(minor) duplicate `Signed-off-by: Minh`...
reply PS8 2026-08-14 23:29 Andreas Dilger lustre_kernelcomm.h:267 — (style) instead of putting this here, it would be better to `#define GENRADIX_NODE_SIZE PAGE_SIZE` in the compat code and use that instead o
Andreas Dilger PS8 · 2026-08-14 23:29
(style) instead of putting this here, it would be better to `#define GENRADIX_NODE_SIZE PAGE_SIZE` in the compat code and use that instead of `LUSTRE_NL_ENTRY_SIZE_MAX`.
reply PS1 2026-04-10 19:43 James Simmons kernelcomm.c:1413 — So the table stuff is meant to obd specific but this is really really generic. The code seems to be a mix of both behaviors of being obd spe
James Simmons PS1 · 2026-04-10 19:43
So the table stuff is meant to obd specific but this is really really generic. The code seems to be a mix of both behaviors of being obd specific and then super generic. I would prefer that it was only obd specific. Its not going to be easy to make dump_one() flexible for all cases. So I'm not sold on a dump function.
reply PS1 2026-04-10 19:43 James Simmons kernelcomm.c:1455 — Same here. While its labled as obd specific its really super generic.
James Simmons PS1 · 2026-04-10 19:43
Same here. While its labled as obd specific its really super generic.
reply PS2 2026-07-28 10:31 Gerrit AI review for Lustre kernelcomm.c:1341 — `ops->collect()` is called with `obd_device_lock()` held, and that is `xa_lock(&obd_devs)` -- a spinlock. So a collect callback can't sleep,
Gerrit AI review for Lustre PS2 · 2026-07-28 10:31
`ops->collect()` is called with `obd_device_lock()` held, and that is `xa_lock(&obd_devs)` -- a spinlock. So a collect callback can't sleep, and anything it allocates (the natural implementation is `genradix_ptr_alloc()`, which existing callers such as tgt_mount.c use with GFP_KERNEL) has to be GFP_ATOMIC.

Nothing in the descriptor comment in lustre_kernelcomm.h says this, and the header also doesn't say that `collect` owns updating `ctx->count` and must store entries at 0..count-1 (both the cleanup loop here and `lustre_obd_nl_dump()` assume that). Since there is no in-tree implementation yet to copy from, could the contract be spelled out with the struct?

Holding the spinlock across the whole device scan is also a change in character from the existing handlers -- `lustre_stats_start()` does its scan outside `obd_device_lock()`.
reply PS2 2026-07-28 10:31 Gerrit AI review for Lustre kernelcomm.c:1350 — `cb->min_dump_alloc` is set to a fixed `ops->min_alloc` regardless of how many entries `collect()` gathered. The two existing handlers scale
Gerrit AI review for Lustre PS2 · 2026-07-28 10:31
`cb->min_dump_alloc` is set to a fixed `ops->min_alloc` regardless of how many entries `collect()` gathered. The two existing handlers scale it: `lustre_device_list_start()` uses `class_obd_devs_count() * DEVICE_VALUE_PACKET_SIZE`, and `lustre_stats_start()` accumulates `STATS_MSG_DATASET_SIZE * rc`. With a constant, any node with more devices than the descriptor author assumed overflows the skb -- and per the comment below, that ends the dump with an error rather than continuing. Should this be `ops->min_alloc * ctx->count` plus the key-table size?
reply PS2 2026-08-14 23:29 Andreas Dilger kernelcomm.c:1407 — This looks like a reasonable suggestion?
Gerrit AI review for Lustre PS2 · 2026-07-28 10:31
When the skb fills, this returns -EMSGSIZE and the whole dump is aborted, dropping every entry from `ctx->index` onwards. The usual pattern -- and what `lustre_device_list_dump()` does -- is to stop adding messages and return the byte count so netlink flushes the skb and re-enters the dump:

    return rc < 0 ? rc : msg->len;

`ctx->index` is already carried in the context, so resumption would work; only the return value is missing. Same for the `dump_one()` failure just below, where `rc` may well be -EMSGSIZE too.

No caller exists yet, so this isn't reachable today, but it looks worth fixing before the first command is wired up.
Andreas Dilger PS2 · 2026-08-14 23:29
This looks like a reasonable suggestion?
reply PS3 2026-08-14 23:29 Andreas Dilger kernelcomm.c:1280 — This also seems reasonable
Gerrit AI review for Lustre PS3 · 2026-07-30 06:01
(minor) This is the same loop that is still open-coded in `lustre_stats_dump()` above. The patch adds the `nla_put` return checks to that copy and lands a second, identical copy here, so a future fix to one will miss the other -- which is the opposite of what the commit message says the change does.

Could `lustre_stats_dump()` just call this?

    rc = lustre_nl_put_dataset(msg, stats, LUSTRE_STATS_ATTR_DATASET);
    if (rc)
        GOTO(out_cancel, rc);
Andreas Dilger PS3 · 2026-08-14 23:29
This also seems reasonable
reply PS8 2026-08-15 13:12 Gerrit AI review for Lustre kernelcomm.c:32 — (style) dropping the `static struct genl_family lustre_family;` forward declaration left two blank lines here; one is enough.
Gerrit AI review for Lustre PS8 · 2026-08-15 13:12
(style) dropping the `static struct genl_family lustre_family;` forward declaration left two blank lines here; one is enough.
reply PS8 2026-08-15 13:12 Gerrit AI review for Lustre kernelcomm.c:641 — (style) not a bug, but `stats_dataset_list` becomes a kernel-global symbol here with no subsystem prefix, which is easy to collide with. `lu
Gerrit AI review for Lustre PS8 · 2026-08-15 13:12
(style) not a bug, but `stats_dataset_list` becomes a kernel-global symbol here with no subsystem prefix, which is easy to collide with. `lustre_stats_dataset_list` would match `lustre_family` and `lustre_stats_dump()` alongside it. The extern in lustre_kernelcomm.h would need the same rename.
reply PS8 2026-08-14 23:29 Andreas Dilger kernelcomm.c:841 — (style) doesn't need a whole saga. Just a short comment like `copy by element, struct copy only copies fixed header` or maybe use `unsafe_m
Andreas Dilger PS8 · 2026-08-14 23:29
(style) doesn't need a whole saga.  Just a short comment like `copy by element, struct copy only copies fixed header` or maybe use `unsafe_memcpy()` to avoid the warning.
reply PS8 2026-08-15 13:12 Gerrit AI review for Lustre lprocfs_status.c:1538 — (minor) This repeats the xa_lock()/__xa_alloc()/atomic_inc() sequence from ldebugfs_stats_alloc() verbatim, so the two copies can drift apar
Gerrit AI review for Lustre PS8 · 2026-08-15 13:12
(minor) This repeats the xa_lock()/__xa_alloc()/atomic_inc() sequence from ldebugfs_stats_alloc() verbatim, so the two copies can drift apart.

This was raised on the first revision and still applies: ldebugfs_stats_alloc() could compute its truncated source string and then call ldebugfs_stats_register(), leaving only the debugfs file creation behind and keeping one copy of the xarray insertion.
owner Timothy Day · uploader Minh · PS8 uploaded 25d ago · NEW · open in Gerrit ↗
commit message
LU-19768 obdclass: table-driven netlink framework

Introduce a reusable table-driven netlink handler framework
(lustre_nl_obd_ops / lustre_nl_ctx) that factors out the common
start/dump/done pattern shared by commands that iterate OBD devices.

Each command supplies a descriptor with collect, dump_one, and
optional release callbacks.

Also fix several bugs in the existing stats dump path:
- Add missing nla_put return-value checks
- Fix an off-by-one in key-list sizing
- Fix a typo ("togther" -> "together").

TLC-bug-id: TLU-56
Signed-off-by: Timothy Day <timday@thelustrecollective.com>
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Change-Id: Ic3267111785fe79761f0673477149f7fca470a35
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>

Review feedback — your turn

(2)
68338 master J !B ✓T ✓R 0/2−
LU-19404 lnet: retry netlink dump on ENOBUFS
James Simmons voted -1
5 unresolved M +107 −3
14d
James Simmons voted -1
5 unresolved thread(s) await your reply — last from James Simmons
no vote yet from Alexey Lyashkov, Serguei Smirnov, Andreas Dilger
janitor run: 5 failing config(s), none unique to this patch — janitor results
reviews: James Simmons -1 2026-08-25 15:42
no vote yet: Alexey Lyashkov, Serguei Smirnov, Andreas Dilger
patchsets: PS1 08-25 PS2 08-25
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:891 — Which is better? The error messages of libnl or the error messages of strerror(). I went with the libnl ones.
James Simmons PS2 · 2026-08-25 16:11
Which is better? The error messages of libnl or the error messages of strerror(). I went with the libnl ones.
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:1009 — We could set data->error = -errno;
James Simmons PS2 · 2026-08-25 16:11
We could set data->error = -errno;
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:1016 — According to libnl library code nl_syserr2nlerr() maps NLE_NOMEM to ENOBUFS. So if rc is a -NLE_* error then the correct thing to do is
James Simmons PS2 · 2026-08-25 16:11
According to libnl library code nl_syserr2nlerr() maps NLE_NOMEM to ENOBUFS. So if rc is a -NLE_* error then the correct thing to do is

data->errmsg = nl_geterror(rc);
data->error = -errno;

NLE_NOMEM is broken for you?
reply PS2 2026-08-25 16:11 James Simmons liblnetconfig_netlink.c:1019 — Yes I never set data->error :-(
James Simmons PS2 · 2026-08-25 16:11
Yes I never set data->error :-(
reply PS2 2026-08-25 16:13 James Simmons lnetctl.c:2431 — we need to allocate large cb->min_dump_alloc. Otherwise we get this retry loops. Ugh what a mess.
James Simmons PS2 · 2026-08-25 16:11
This is why I told Alexey
James Simmons PS2 · 2026-08-25 16:13
we need to allocate large cb->min_dump_alloc. Otherwise we get this retry loops. Ugh what a mess.
owner Minh · uploader Minh · PS2 uploaded 15d ago · NEW · open in Gerrit ↗
commit message
LU-19404 lnet: retry netlink dump on ENOBUFS

lnetctl net show -v and other DLC netlink dumps can fail
transiently with exit 234, empty output, and a cYAML error
claiming "errno: 0" / "Out of memory" on a host with plenty of
free memory. A rerun succeeds.

lnet_net_show_start() sets cb->min_dump_alloc = U16_MAX, requiring
an order-5 alloc_skb() per dump chunk. Above
PAGE_ALLOC_COSTLY_ORDER this fails under memory fragmentation
regardless of available memory, stalling the dump with ENOBUFS.
libnl reports this as NLE_NOMEM ("Out of memory"), and the read
handler never records an errno for it, hence "errno: 0". The
dump is unrecoverable on that socket; only a fresh request
recovers.

Retry the whole request on a fresh socket, bounded with
exponential backoff, when a dump-mode request fails with
ENOBUFS/ENOMEM. Report the real errno instead of libnl's
conflating NLE_NOMEM text.

Adds sanity-lnet test_306, which reproduces the failure reliably
under concurrent `lnetctl net show -v` plus discovery churn.

Fixes: fff650726b2b ("LU-13642 lnet: Allow dynamic IP specification")
TLC-bug-id: TLU-226
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Change-Id: I6906afe6cca3f80b556152a94ed627d6b75631e9
67804 master J –B ✓T ✓R 1/2
LU-20560 build: quiet checkpatch spelling nags
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
2 unresolved S +40 −2
20d
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
no vote yet from Oleg Drokin, Timothy Day
build #129761 SUCCESS
reviews: Andreas Dilger +1 2026-08-19 20:10
no vote yet: Oleg Drokin, Timothy Day
patchsets: PS1 08-07 PS2 08-07 PS3 08-10 Andreas Dilger PS4 08-19 Andreas Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2026-08-19 21:28 Gerrit AI review for Lustre checkpatch.pl:3687 — (style) This isn't a bug, but a bare string on the right of `=~` is compiled as a regex, so the `*` quantifies the preceding `/` rather than
Gerrit AI review for Lustre PS4 · 2026-08-19 21:28
(style) This isn't a bug, but a bare string on the right of `=~` is compiled as a regex, so the `*` quantifies the preceding `/` rather than standing in for the parameter name. It does happen to cover both dictionary spellings (`man4 page` and `man4/ page`), which `m{/man4/? page}` would state outright. As written, an entry later worded `Documentation/man4/<param>.4 page` would silently stop matching and turn the block back off.
reply PS4 2026-08-19 21:28 Gerrit AI review for Lustre checkpatch.pl:3688 — (defect) The two-argument macro forms never reach the parameter name here.
Gerrit AI review for Lustre PS4 · 2026-08-19 21:28
(defect) The two-argument macro forms never reach the parameter name here.

In the real macro names `_SEQ_FOPS_` is followed by `RO_`/`RW_`, so the `TYPE\(\s*\w+,\s*` branch cannot match and `\w*\(` wins instead, capturing the first argument. That argument is the module prefix, not the parameter: lprocfs_status.h:795 expands `_RO_TYPE(name, type)` to `LDEBUGFS_SEQ_FOPS_RO(name##_##type)`, and the page is named `<name>.<type>.4`. `_WR_ONLY(name, type)` has no branch of its own and takes the same path.

The trailing `_` also excludes the bare `LPROC_SEQ_FOPS(name)` form, which spelling.txt:208 does nag on (lustre/quota/qsd_lib.c:179).

Checked against this commit with both `Documentation/man4/at_max.4` and `mdt.at_max.4` on disk:

    +LDEBUGFS_SEQ_FOPS_RW_TYPE(mdt, at_max);
    WARNING:TYPO_SPELLING: ... 'create Documentation/man4/ page for this parameter'?

`LUSTRE_RW_ATTR(at_max)` in the same patch is quiet, so the escape hatch works only for the single-argument forms. Since `_RO_TYPE`/`_RW_TYPE` are most of the `LDEBUGFS_SEQ_FOPS_*` uses in the tree, the commit message's claim to cover the `LDEBUGFS_SEQ_FOPS_` entries doesn't hold for them.

Would `_SEQ_FOPS(?:_(?:\w+_TYPE|WR_ONLY)\(\s*\w+,\s*|_?\w*\()` catch all the forms? That captures `at_max`/`force_reint`/`qsd_enabled` on the cases above, and the existing `{,*.}$param.4` glob then finds both the plain and the dotted page name.
owner Minh · uploader Andreas Dilger · PS4 uploaded 20d ago · NEW · open in Gerrit ↗
commit message
LU-20560 build: quiet checkpatch spelling nags

LUSTRE_{RO,RW,WO}_ATTR, MODULE_PARM_DESC, and LDEBUGFS_SEQ_FOPS_
spelling.txt entries nag for each new sysfs parameter to add a
Documentation/man4/ page, but complain even if the patch adds
or modifies the relevant man4/ page. Suppress this warning if
Documentation/man4/<PARAM>.4 exists or is added by the patch.

Also exempt the spelling dictionaries from their own typo scan.
An addition to the spelling file would trip its own entry. Do not
generate a warning when adding a new entry to these files.  Match
via a "scripts/spelling" regexp so that it works with both the
Lustre and in-kernel spelling files to facilitate upstream merge.

TLC-bug-id: TLU-208
Fixes: 1792d49a9660 ("LU-17231 doc: Create script to generate man pages")
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Change-Id: I5d4fe5e7a2e2474dfa98e992034a54ff92f1f2c3

In CI

(1)
36513 master J ✓B ✓T …R 0/2
LU-12864 test: enable unstable check accounting in test
carrying Zhenyu Xu · build OK — testing in progress (typically 6–14h)
stalled 407d S +16 −6
407d
build #87351 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Andreas Dilger
owner Zhenyu Xu · uploader Minh Diep · PS3 uploaded 1582d ago · NEW · open in Gerrit ↗
commit message
LU-12864 test: enable unstable check accounting in test

Enable unstable check accounting in sanity-benchmark test_iozone to
verify whether unstable check accounting could prohibit client pinning
too much memory for writing.

Test-Parameters: fortestonly testlist=sanity-benchmark envdefinitions=ONLY=iozone
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I4cc7cfead8709380ad01c90bc0be9108dbe8b3f0

Needs reviewers

(0)
nothing here right now

Waiting on reviewers

(0)
nothing here right now

Ready to land

(0)
nothing here right now

Parked (WIP / self-blocked)

(0)
nothing here right now
21 open

Re-review needed — new patchset since your vote

(0)
nothing here right now

Awaiting your review — CI green

(6)
33911 master J –B ✓T ✓R 2/2−
LU-11824 build: Optionally package LNDs in their own RPM
reviewing Sebastien Piechurski · CI green — awaiting your review
stalled 401d S +40 −2
401d
build #15306 SUCCESS
reviews: Alexey Lyashkov +1 2020-07-24 11:26 · James Simmons -1 2020-07-24 13:07 · Nathaniel Clark +1 2020-07-24 11:42
no vote yet: Nikitas Angelinas, Bruno Travouillon, Andreas Dilger, Li Xi
owner Sebastien Piechurski · uploader Sebastien Piechurski · PS13 uploaded 2266d ago · NEW · open in Gerrit ↗
commit message
LU-11824 build: Optionally package LNDs in their own RPM

For Lustre vendors, it is desirable to maintain a single set of
packages for a given build that will be used for all kind of hardware.
However, some LNDs can bring external dependencies which are not
wanted on some node. For example, the o2ib LND built against Mellanox
OFED will bring dependencies on the Mellanox OFED kernel modules, thus
requiring with the current packaging to install Mellanox OFED even on
the nodes which will only use Ethernet (and not even have IB hardware
installed).

This patch adds a configure and RPM build time option to package
chosen LNDs in their own RPM, binding the dependencies to only the
specific LND package.
The --with-separate_lnds=o2ib option at configure time (followed by
make rpms) or --define 'separate_lnds o2ib' at rpmbuild time will
remove the ko2iblnd kernel module from the kmod-lustre package and
create an additional kmod-lustre-lnd-o2ib package with the o2ib LND.

Several LNDs can be listed at once (separated spaces), in which
case each listed LND will be packaged in its own RPM.

When the option is not specified, the current behavior remains
(packaging all built LNDs in the same kmod-lustre RPM).

Signed-off-by: Sebastien Piechurski <sebastien.piechurski@atos.net>
Change-Id: I169edb40ebbcfc8c4bcb75e1a56a28bf437f5c9b
Test-Parameters: trivial
39778 master J –B ✓T ✓R 0/2−
LU-13936 contrib: automate commit message updates
reviewing Amir Shehata · CI green — awaiting your review
stalled 407d M +178 −0
407d
build #16339 SUCCESS
reviews: Andreas Dilger -1 2023-03-11 00:05
no vote yet: Serguei Smirnov
owner Amir Shehata · uploader Amir Shehata · PS3 uploaded 2199d ago · NEW · open in Gerrit ↗
commit message
LU-13936 contrib: automate commit message updates

When porting a large number of patches from one branch to another
there are a set of conventions which need to be followed.  It is
possible to automate the modification of the commit messages. This
speeds up the porting process and reduces the potential of human
error.

Test-Parameters: trivial
Signed-off-by: Amir Shehata <ashehata@whamcloud.com>
Change-Id: I7b3648c36938aef964233ae803c2814ad27188c9
48596 b2_12 J ✓B ✓T ✓R 1/1
LU-16059 build: Installation of dkms server builds
reviewing Jian Yu · CI green — awaiting your review
stalled 1439d S +28 −9
1439d
build #89648 SUCCESS · tests all Maloo sessions
reviews: Shaun Tancheff +1 2022-10-01 10:13
owner Jian Yu · uploader Jian Yu · PS1 uploaded 1450d ago · NEW · backport · open in Gerrit ↗
commit message
LU-16059 build: Installation of dkms server builds

The linux-zfs-dkms package is passing the wrong paths
for zfs [and spl] causing the dkms build to fail.

ZFS_VERSION is not parsed correctly from 'dkms status'.

The splver and zfsver check can match against the wrong
package(s).

lustre-zfs-dkms provides: kmod-lustre-osd-zfs, and
                          lustre-osd-zfs-mount
lustre-ldiskfs-dkms provides: kmod-lustre-osd-ldiskfs and
                              lustre-osd-ldiskfs-mount

In the case of multiple zfs versions installed, build lustre
osd against the highest version number.

Lustre-change: https://review.whamcloud.com/48083
Lustre-commit: c3dc67b2c5bf1974d792b3701d932bd04c756bd8

HPE-bug-id: LUS-11113
Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ic154ca045427bf26cb7e6a44b8c467675e987aad
47435 b2_14 B ✓T ✓R 1/2
LU-15875 kernel: kernel update RHEL7.9 [3.10.0-1160.66.1.el7]
reviewing Jian Yu · CI green — awaiting your review
stalled 1538d XS +4 −4
1538d
build #87580 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2022-06-23 18:54
owner Jian Yu · uploader Jian Yu · PS1 uploaded 1569d ago · NEW · open in Gerrit ↗
commit message
LU-15875 kernel: kernel update RHEL7.9 [3.10.0-1160.66.1.el7]

Update RHEL7.9 kernel to 3.10.0-1160.66.1.el7.

Test-Parameters: trivial clientdistro=el7.9 serverdistro=el7.9

Change-Id: I9e8ab33edd6cacbbf895399962027827a1befd5b
Signed-off-by: Jian Yu <yujian@whamcloud.com>
47329 b2_14 B ✓T ✓R 1/2
LU-15795 kernel: RHEL 8.6 server support
reviewing Jian Yu · CI green — awaiting your review
stalled 1545d XL +8073 −1
1545d
build #87963 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2022-06-16 09:30
no vote yet: Gian-Carlo DeFazio, Olaf Faaland
patchsets: PS1 05-13 PS2 05-18 PS3 05-18 PS4 06-15
owner Jian Yu · uploader Jian Yu · PS4 uploaded 1546d ago · NEW · open in Gerrit ↗
commit message
LU-15795 kernel: RHEL 8.6 server support

This patch makes changes to support RHEL 8.6 release
with kernel 4.18.0-372.9.1.el8 for Lustre server.

Test-Parameters: trivial fstype=ldiskfs \
clientdistro=el8.6 serverdistro=el8.6 testlist=sanity

Test-Parameters: trivial fstype=zfs \
clientdistro=el8.6 serverdistro=el8.6 testlist=sanity

Change-Id: I86407171b40d40a05379085444eee79e2ac272b3
Signed-off-by: Jian Yu <yujian@whamcloud.com>
37120 b2_10 B ✓T ✓R 1/2
LU-13059 kernel: kernel update RHEL7.7 [3.10.0-1062.9.1.el7]
reviewing Jian Yu · CI green — awaiting your review
stalled 1588d XS +2 −2
1588d
build #10920 SUCCESS
reviews: Yang Sheng +1 2020-01-03 05:20
owner Jian Yu · uploader Jian Yu · PS1 uploaded 2442d ago · NEW · open in Gerrit ↗
commit message
LU-13059 kernel: kernel update RHEL7.7 [3.10.0-1062.9.1.el7]

Update RHEL7.7 kernel to 3.10.0-1062.9.1.el7 for Lustre client.

Test-Parameters: trivial clientdistro=el7.7

Change-Id: I11fc7a2c382a5c234698bfb30a38a08ed29fef03
Signed-off-by: Jian Yu <yujian@whamcloud.com>

Awaiting review — CI not green yet

(10)
59702 master J –B ✓T ✗1R 0/2
LU-16960 client: kmod-lustre-client rpm add kernel version
reviewing Götz Waschk · awaiting review (CI not green yet)
stalled 126d XS +1 −1
126d
failed enforced testplatformdetail
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
5 optional test failure(s) — informational
build #124604 SUCCESS · tests all Maloo sessions
patchsets: PS1 06-11 PS2 12-11 PS3 05-05
owner Götz Waschk · uploader Götz Waschk · PS3 uploaded 127d ago · NEW · open in Gerrit ↗
commit message
LU-16960 client: kmod-lustre-client rpm add kernel version

This change adds the kernel version and release number to the release
number of the kmod-lustre-client rpm package.

Signed-off-by: Goetz Waschk <goetz.waschk@desy.de>
Change-Id: I304a1fd8897b1f7829530d52538f544b7a4cb386
4115 master J –B ✓T ✓R 2/2−
LU-1095 debug: Log expired requests as D_NETERROR
reviewing Prakash Surya · awaiting review (CI not green yet)
stalled 400d XS +1 −1
400d
build #9514 SUCCESS
reviews: wangdi +1 2013-12-21 01:06 · Andreas Dilger +1 2013-12-21 01:06 · Oleg Drokin -1 2013-12-21 01:06
no vote yet: Brian Behlendorf, Commit Reviewer
owner Prakash Surya · uploader Prakash Surya · PS1 uploaded 5094d ago · NEW · open in Gerrit ↗
commit message
LU-1095 debug: Log expired requests as D_NETERROR

While knowing about expired requests is important, it's also not
an uncommon event on a large system.  As long as the lower layers
can retry or take other corrective action there's no reason to
both an administrator with this.  They can always set D_NETERROR
is they suspect problems with the network.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Change-Id: I9662144eb60d6ecd9e27063b6c4bf55a93b1b34a
4116 master J –B ✓T ✗0R 1/2−
LU-1095 debug: Standardize recovery messages
reviewing Prakash Surya · awaiting review (CI not green yet)
stalled 400d M +39 −40
400d
build #15947 SUCCESS
reviews: Patrick Farrell -1 2014-07-02 21:34 · Andreas Dilger +1 2013-12-21 01:06
no vote yet: Brian Behlendorf, Commit Reviewer
owner Prakash Surya · uploader Prakash Surya · PS3 uploaded 4841d ago · NEW · open in Gerrit ↗
commit message
LU-1095 debug: Standardize recovery messages

The guiding principle here is that any message which might normally
occur as part of recovery should not be printed using LCONSOLE_*.
Also attempt to limit to a single message per service the final result
of the recovery process.  Too much noise and it will always just
get ignored.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Change-Id: I5609c4918477be63c41ae0b233a10e9547337dec
18099 master J –B ✗T –R 0/2
LU-7700 build: Fix autoreconf by using AC_CONFIG_MACRO_DIRS
reviewing Christopher J. Morrone · awaiting review (CI not green yet)
stalled 400d S +4 −7
400d
owner Christopher J. Morrone · uploader Christopher J. Morrone · PS2 uploaded 3882d ago · NEW · open in Gerrit ↗
commit message
LU-7700 build: Fix autoreconf by using AC_CONFIG_MACRO_DIRS

Autoreconf does not work because we are not letting autotools
know about all of the various m4 macro directories in Lustre's
tree anywhere other than aclocal's command line in autogen.sh

As of automake 1.13 at least, AC_CONFIG_MACRO_DIRS exists and
can both replace our use of aclocal command line includes in
autogen.sh, and express the includs in a way that allows
autoreconf to work.

The only problem, of course, is that automake 1.13 is relatively
new (2012), and is not currently in some (all?) RHEL6 releases.

Bump the required automake version to 1.13 in AM_INIT_AUTOMAKE
to reflect that requirement.

Change-Id: I1594aade093115da3181e2dd5a99c81176ee7829
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
20242 master J –B ✓T ✗0R 2/2
LU-8148: Add OST Pools to mdtest and IOR in auster
reviewing Cliff White · awaiting review (CI not green yet)
stalled 400d S +20 −4
400d
reviews: Frank Heckes +1 2016-06-24 06:46 · James Nunez +1 2016-06-24 01:30
no vote yet: Sarah Liu, Stephen Willson, Saurabh Tandan
owner Cliff White · uploader Cliff White · PS6 uploaded 3729d ago · NEW · open in Gerrit ↗
commit message
LU-8148: Add OST Pools to mdtest and IOR in auster

Allow mdtest and IOR to use pool definitions.
Defaults to null if not set in config file.
Fixed style errors.
Rebased to current master 06/23/2016

Test-Parameters: trivial testlist=<parallel-scale>

Change-Id: Ibaa60183f57362a1a7de006412ed368a39d9f3e7
Signed-off-by: Cliff White <cliff.white@intel.com>
34954 master J !B ✓T ✗2R 0/2
LU-8585 utils: enable fileset use with liblustreapi HSM handling
reviewing James Simmons · awaiting review (CI not green yet)
stalled 400d S +4 −9
400d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 RHEL 9.3/x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-4 RHEL 8.9/x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
5 optional test failure(s) — informational
build #108370 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, John Hammond, Timothy Day
patchsets: PS10 03-22 PS11 03-23 PS12 10-16
owner James Simmons · uploader James Simmons · PS12 uploaded 693d ago · NEW · open in Gerrit ↗
commit message
LU-8585 utils: enable fileset use with liblustreapi HSM handling

Currently using the special .lustre/fid/X path doesn't work with
filesets but the llapi_fid_* API in liblustreapi does. Move the
HSM handling in liblustreapi to the llapi_fid_* handling. While
sites that need to use fileset can create their own copy agent
that uses the llapi_fid_* most sites are reluctant to replace
liblustreapi with their own version that can work with fileset.
Note sanity-hsm test will not work FILESET since the copy agent
for testing will not be updated to use the llapi_fid_* API.

Change-Id: Iaa37d0c585f84c15769e415e0fd73be7b25dd296
Signed-off-by: James Simmons <jsimmons@infradead.org>
35422 master J –B ✗T –R 0/2
LU-9897 zfs: migrate autoconf detection to pkgconfig
reviewing James Simmons · awaiting review (CI not green yet)
stalled 400d S +10 −36
400d
build #78732 FAILURE
no vote yet: Alex Zhuravlev
owner James Simmons · uploader James Simmons · PS8 uploaded 2063d ago · NEW · open in Gerrit ↗
commit message
LU-9897 zfs: migrate autoconf detection to pkgconfig

Currently we have extra complexity to determine where packages are
installed. This approach is also fragile if packages are not
installed in the standard location. This can be handled in a much
cleaner way with pkgconfig. Update ZFS handling to use its
supplied pkgconfig files it provides.

Test-Parameter: trivial

Change-Id: I752997a940b0a8c56772bd737f42a5acbd010abb
Signed-off-by: James Simmons <jsimmons@infradead.org>
46934 master J ✓B ✓T ✗3R 0/2
LU-12066 test: cleanup staled exports
reviewing Hongchao Zhang · awaiting review (CI not green yet)
stalled 400d 1 unresolved S +27 −2
400d
failed enforced testplatformdetail
custom-1002 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: recovery-small. session
review-dne-subtest-change RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: recovery-small. session
review-dne-zfs-subtest-change RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: recovery-small. session
build #107453 SUCCESS · tests all Maloo sessions
no vote yet: Shaun Tancheff, Andreas Dilger, Jian Yu
patchsets:
+9 earlier PS1 03-25 PS2 10-21 Andreas Dilger PS3 10-25 Minh Diep PS4 01-19 PS5 01-20 PS6 03-01 Jian Yu PS7 03-26 Minh Diep PS8 06-12 Minh Diep PS9 08-11 Minh Diep
PS10 12-14 Andreas Dilger PS11 12-14 Andreas Dilger PS12 05-07 PS13 06-29 Minh Diep PS14 09-08 Shaun Tancheff
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2022-10-21 20:11 Andreas Dilger recovery-small.sh:1106 — (typo) "connection"
Andreas Dilger PS2 · 2022-10-21 20:11
(typo) "connection"
owner Hongchao Zhang · uploader Shaun Tancheff · PS14 uploaded 731d ago · NEW · open in Gerrit ↗
commit message
LU-12066 test: cleanup staled exports

In test_26b in recovery-small, there could be staled exports to wait
to be evcited, and these exports should be cleaned up before test.

Test-Parameters: trivial testlist=recovery-small env=ONLY=26a,ONLY_REPEAT=50
Test-Parameters: trivial testlist=recovery-small env=ONLY=26b,ONLY_REPEAT=50

Signed-off-by: Hongchao Zhang <hongchao@whamcloud.com>
Change-Id: I5ba05a565fd095457df1b6d511ffec60d02ccbd0
55080 master J –B ✓T ✗2R 0/2
LU-17843 build: correctly create lustre-devel.files
reviewing Patrick Farrell · awaiting review (CI not green yet)
stalled 407d XS +4 −2
407d
failed enforced testplatformdetail
review-ldiskfs RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #111798 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Jian Yu
patchsets: PS1 05-11 PS2 05-11 PS3 03-18 Andreas Dilger
owner Patrick Farrell · uploader Andreas Dilger · PS3 uploaded 540d ago · NEW · open in Gerrit ↗
commit message
LU-17843 build: correctly create lustre-devel.files

The lustre-devel.files file is currently 'created' in the
%description section of rpmbuild (the :> command), but that
command doesn't do anything in %description.

Move this to %install and add a blank line so the file is
not empty.  Otherwise, the lustre-devel.files file is only
populated when we build with --shared, not static.
If the lustre-devel.files file is not present OR if it's
entirely empty (0 size), this results in an error in
rpmbuild.

Note the lustre-devel package still has other contents
added in the %files directive, so lustre-devel is sound -
the issue is just that you can't build RPMs when compiling
statically due to the spec file issues.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: Ic598531e376ce1cd356330023b74ec624b9adea8
51398 b2_12 B ✓T –R 1/1
LU-16755 kernel: RHEL 8.8 client support
reviewing Etienne AUJAMES · awaiting review (CI not green yet)
stalled 1173d S +28 −0
1173d
build #95802 SUCCESS
reviews: Yang Sheng +1 2023-06-24 14:33
no vote yet: Alex Zhuravlev, Jian Yu
patchsets: PS1 06-21 PS2 06-21
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS2 uploaded 1175d ago · NEW · backport · open in Gerrit ↗
commit message
LU-16755 kernel: RHEL 8.8 client support

This patch makes changes to support RHEL 8.8 release
with kernel 4.18.0-477.el8 for Lustre client and server.

Lustre-change: https://review.whamcloud.com/50708
Lustre-commit: fccc55866bc7da0b4908130d3f16bd355ffb7dc6

Test-Parameters: trivial fstype=ldiskfs clientdistro=el8.8 serverdistro=el7.9 testlist=sanity
Test-Parameters: trivial fstype=zfs clientdistro=el8.8 serverdistro=el7.9 testlist=sanity
Change-Id: Ie47f131e0340a601c8a5d748ecf9b1b73d4baa1f
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Minh Diep <mdiep@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>

Voted on current patchset

(5)
47418 b2_12 B ✓T ✓R 2/2
LU-15793 kernel: kernel update RHEL8.5 [4.18.0-348.23.1.el8_5]
reviewing Jian Yu · you voted +1 on current PS
stalled 931d M +56 −1
931d
build #88035 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2022-06-23 18:53 · Minh Diep +1 2022-08-03 03:31
no vote yet: Andreas Dilger
patchsets: PS1 05-20 PS2 06-17 PS3 06-22
owner Jian Yu · uploader Jian Yu · PS3 uploaded 1540d ago · NEW · open in Gerrit ↗
commit message
LU-15793 kernel: kernel update RHEL8.5 [4.18.0-348.23.1.el8_5]

Update RHEL8.5 kernel to 4.18.0-348.23.1.el8_5 for Lustre client.

Test-Parameters: trivial clientdistro=el8.5 testlist=sanity

Change-Id: I9724e304c2d32bb0ac2dcf4138438c79d4abca0f
Signed-off-by: Jian Yu <yujian@whamcloud.com>
49075 b2_12 B ✓T ✓R 2/1
LU-16269 kernel: kernel update RHEL8.6 [4.18.0-372.32.1.el8_6]
reviewing Jian Yu · you voted +1 on current PS
stalled 1390d XS +7 −2
1390d
build #90700 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2022-11-18 15:09 · Minh Diep +1 2022-11-18 22:05
patchsets: PS1 11-08 PS2 11-09 PS3 11-16
owner Jian Yu · uploader Jian Yu · PS3 uploaded 1392d ago · NEW · backport · open in Gerrit ↗
commit message
LU-16269 kernel: kernel update RHEL8.6 [4.18.0-372.32.1.el8_6]

Update RHEL8.6 kernel to 4.18.0-372.32.1.el8_6.

Lustre-change: https://review.whamcloud.com/48969
Lustre-commit: 705edb250d62dca84f97f7e97eb468d554611c20

Test-Parameters: trivial clientdistro=el8.6

Change-Id: I5576180ddf10ed2b0a5e2ef85b58fef993de65a4
Signed-off-by: Jian Yu <yujian@whamcloud.com>
48316 b2_14 B ✓T ✓R 1/1
LU-16075 kernel: kernel update RHEL8.6 [4.18.0-372.19.1.el8_6]
reviewing Jian Yu · you voted +1 on current PS
stalled 1467d S +9 −4
1467d
build #89220 SUCCESS · tests all Maloo sessions
reviews: Minh Diep +1 2022-09-02 19:37
patchsets: PS1 08-23 PS2 08-24
owner Jian Yu · uploader Jian Yu · PS2 uploaded 1477d ago · NEW · backport · open in Gerrit ↗
commit message
LU-16075 kernel: kernel update RHEL8.6 [4.18.0-372.19.1.el8_6]

Update RHEL8.6 kernel to 4.18.0-372.19.1.el8_6.

Lustre-change: https://review.whamcloud.com/48116
Lustre-commit: TBD (077f4b13e7fbe564a79c35487e8208e8381fc833)

Test-Parameters: trivial fstype=ldiskfs \
clientdistro=el8.6 serverdistro=el8.6 testlist=sanity

Test-Parameters: trivial fstype=zfs \
clientdistro=el8.6 serverdistro=el8.6 testlist=sanity

Change-Id: I8e0fbdab54d36512c4c4cbdbc97c580994ebcbd3
Signed-off-by: Jian Yu <yujian@whamcloud.com>
47417 b2_14 B ✓T ✓R 2/2
LU-15793 kernel: kernel update RHEL8.5 [4.18.0-348.23.1.el8_5]
reviewing Jian Yu · you voted +1 on current PS
stalled 1498d XS +4 −4
1498d
build #88033 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2022-08-02 16:44 · Minh Diep +1 2022-08-03 03:32
patchsets: PS1 05-20 PS2 06-22
owner Jian Yu · uploader Jian Yu · PS2 uploaded 1540d ago · NEW · open in Gerrit ↗
commit message
LU-15793 kernel: kernel update RHEL8.5 [4.18.0-348.23.1.el8_5]

Update RHEL8.5 kernel to 4.18.0-348.23.1.el8_5.

Test-Parameters: trivial fstype=ldiskfs \
clientdistro=el8.5 serverdistro=el8.5 testlist=sanity

Test-Parameters: trivial fstype=zfs \
clientdistro=el8.5 serverdistro=el8.5 testlist=sanity

Change-Id: I9724e304c2d32bb0ac2dcf4138438c79d4abca0f
Signed-off-by: Jian Yu <yujian@whamcloud.com>
47306 b2_14 B ✓T ✓R 2/2
LU-15795 kernel: new kernel [RHEL 8.6 4.18.0-372.9.1.el8]
reviewing Jian Yu · you voted +1 on current PS
stalled 1572d S +28 −0
1572d
build #87500 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2022-05-18 16:04 · Minh Diep +1 2022-05-20 19:40
patchsets: PS1 05-11 PS2 05-18
owner Jian Yu · uploader Jian Yu · PS2 uploaded 1575d ago · NEW · open in Gerrit ↗
commit message
LU-15795 kernel: new kernel [RHEL 8.6 4.18.0-372.9.1.el8]

This patch makes changes to support new RHEL 8.6 release
for Lustre client.

Test-Parameters: trivial clientdistro=el8.6

Change-Id: Id738259ed94104c3a3c7bb5c1b853cfabad49405
Signed-off-by: Jian Yu <yujian@whamcloud.com>

CC'd — on your radar, review not requested

(0)
You are not CC'd on any open changes.

Merged — last 30 days

(0)
Nothing merged in the last 30 days.