* [GIT PULL] Please Pull NFS Client Updates for Linux 7.0
@ 2026-02-12 22:06 Anna Schumaker
2026-02-13 2:04 ` pr-tracker-bot
2026-02-16 15:31 ` Niklas Cassel
0 siblings, 2 replies; 5+ messages in thread
From: Anna Schumaker @ 2026-02-12 22:06 UTC (permalink / raw)
To: linux-nfs, torvalds; +Cc: anna
Hi Linus,
The following changes since commit 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7:
Linux 6.19-rc6 (2026-01-18 15:42:45 -0800)
are available in the Git repository at:
git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-7.0-1
for you to fetch changes up to dd2fdc3504592d85e549c523b054898a036a6afe:
SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path (2026-02-09 16:39:50 -0500)
----------------------------------------------------------------
NFS Client Updates for Linux 7.0
New Features:
* Use an LRU list for returning unused delegations
* Introduce a KConfig option to disable NFS v4.0 and make NFS v4.1 the default
Bugfixes:
* NFS/localio: Handle short writes by retrying
* NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
* NFS/localio: use GFP_NOIO and non-memreclaim workqueue in nfs_local_commit
* NFS/localio: remove -EAGAIN handling in nfs_local_doio()
* pNFS: fix a missing wake up while waiting on NFS_LAYOUT_DRAIN
* fs/nfs: Fix a readdir slow-start regression
* SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path
Other Cleanups and Improvements:
* A few other NFS/localio cleanups
* Various other delegation handling cleanups from Christoph
* Unify security_inode_listsecurity() calls
* Improvements to NFSv4 lease handling
* Clean up SUNRPC *_debug fields when CONFIG_SUNRPC_DEBUG is not set
Thanks,
Anna
----------------------------------------------------------------
Anna Schumaker (14):
NFS: Move nfs40_call_sync_ops into nfs40proc.c
NFS: Split out the nfs40_reboot_recovery_ops into nfs40client.c
NFS: Split out the nfs40_nograce_recovery_ops into nfs40proc.c
NFS: Split out the nfs40_state_renewal_ops into nfs40proc.c
NFS: Split out the nfs40_mig_recovery_ops to nfs40proc.c
NFS: Move the NFS v4.0 minor version ops into nfs40proc.c
NFS: Make the various NFS v4.0 operations static again
NFS: Move nfs40_shutdown_client into nfs40client.c
NFS: Move nfs40_init_client into nfs40client.c
NFS: Move NFS v4.0 pathdown recovery into nfs40client.c
NFS: Pass a struct nfs_client to nfs4_init_sequence()
NFS: Move sequence slot operations into minorversion operations
NFS: Add a way to disable NFS v4.0 via KConfig
NFS: Merge CONFIG_NFS_V4_1 with CONFIG_NFS_V4
Ben Dooks (1):
sunrpc: rpc_debug and others are defined even if CONFIG_SUNRPC_DEBUG unset
Chen Ni (1):
nfs: nfs4proc: Convert comma to semicolon
Chenguang Zhao (1):
SUNRPC: Change list definition method
Christoph Hellwig (31):
NFS: remove __nfs_client_for_each_server
NFS: remove nfs_client_mark_return_unused_delegation_types
NFS: remove nfs_client_mark_return_all_delegations
NFS: remove the NULL inode check in nfs4_inode_return_delegation_on_close
NFS: remove nfs_inode_detach_delegation
NFS: remove nfs_start_delegation_return
NFS: assert rcu_read_lock is held in nfs_start_delegation_return_locked
NFS: drop the _locked postfix from nfs_start_delegation_return
NFS: remove NFS_DELEGATION_INODE_FREEING
NFS: open code nfs_delegation_need_return
NFS: remove nfs_free_delegation
NFS: rewrite nfs_delegations_present in terms of nr_active_delegations
NFS: move delegation lookup into can_open_delegated
NFS: return bool from nfs_detach_delegation{,_locked}
NFS: move the deleg_cur check out of nfs_detach_delegation_locked
NFS: simplify the detached delegation check in update_open_stateid
NFS: take a delegation reference in nfs4_get_valid_delegation
NFS: don't consume a delegation reference in nfs_end_delegation_return
NFS: use refcount_inc_not_zero nfs_start_delegation_return
NFS: use a local RCU critical section in nfs_start_delegation_return
NFS: reformat nfs_mark_delegation_revoked
NFS: add a separate delegation return list
NFS: return delegations from the end of a LRU when over the watermark
NFS: make nfs_mark_return_unreferenced_delegations less aggressive
NFS: return void from nfs4_inode_make_writeable
NFS: return void from ->return_delegation
NFS: use bool for the issync argument to nfs_end_delegation_return
NFS: remove the delegation == NULL check in nfs_end_delegation_return
NFS: fold nfs_abort_delegation_return into nfs_end_delegation_return
NFS: simplify error handling in nfs_end_delegation_return
NFS: fix delayed delegation return handling
Daniel Hodges (1):
SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path
Mike Snitzer (4):
NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
NFS/localio: use GFP_NOIO and non-memreclaim workqueue in nfs_local_commit
NFS/localio: remove -EAGAIN handling in nfs_local_doio()
NFS/localio: switch nfs_local_do_read and nfs_local_do_write to return void
Olga Kornievskaia (1):
pNFS: fix a missing wake up while waiting on NFS_LAYOUT_DRAIN
Sagi Grimberg (1):
fs/nfs: Fix readdir slow-start regression
Sergey Shtylyov (2):
NFSv4: pass lease period in seconds to nfs4_set_lease_period()
NFSv4: limit lease period in nfs4_set_lease_period()
Stephen Smalley (1):
nfs: unify security_inode_listsecurity() calls
Trond Myklebust (2):
NFS/localio: Handle short writes by retrying
NFS/localio: Cleanup the nfs_local_pgio_done() parameters
fs/nfs/Kconfig | 26 +-
fs/nfs/Makefile | 4 +-
fs/nfs/callback.c | 13 +-
fs/nfs/callback.h | 3 -
fs/nfs/callback_proc.c | 16 +-
fs/nfs/callback_xdr.c | 21 --
fs/nfs/client.c | 12 +-
fs/nfs/delegation.c | 594 +++++++++++++++---------------
fs/nfs/delegation.h | 9 +-
fs/nfs/dir.c | 4 +-
fs/nfs/fs_context.c | 3 +-
fs/nfs/internal.h | 15 +-
fs/nfs/localio.c | 126 ++++---
fs/nfs/netns.h | 4 +-
fs/nfs/nfs3proc.c | 3 +-
fs/nfs/nfs40.h | 19 +
fs/nfs/nfs40client.c | 245 +++++++++++++
fs/nfs/nfs40proc.c | 395 ++++++++++++++++++++
fs/nfs/nfs42proc.c | 13 +-
fs/nfs/nfs4_fs.h | 86 +++--
fs/nfs/nfs4client.c | 193 +---------
fs/nfs/nfs4proc.c | 804 +++++++++--------------------------------
fs/nfs/nfs4renewd.c | 15 +-
fs/nfs/nfs4session.c | 4 -
fs/nfs/nfs4session.h | 23 --
fs/nfs/nfs4state.c | 93 +----
fs/nfs/nfs4trace.c | 2 -
fs/nfs/nfs4trace.h | 21 +-
fs/nfs/nfs4xdr.c | 109 ++----
fs/nfs/pnfs.c | 3 +-
fs/nfs/pnfs.h | 6 +-
fs/nfs/proc.c | 3 +-
fs/nfs/read.c | 4 +-
fs/nfs/super.c | 30 +-
fs/nfs/sysfs.c | 10 +-
fs/nfs/write.c | 2 +-
include/linux/nfs_fs_sb.h | 10 +-
include/linux/nfs_xdr.h | 9 +-
include/linux/sunrpc/debug.h | 2 -
net/sunrpc/auth_gss/auth_gss.c | 3 +
net/sunrpc/backchannel_rqst.c | 3 +-
41 files changed, 1372 insertions(+), 1588 deletions(-)
create mode 100644 fs/nfs/nfs40.h
create mode 100644 fs/nfs/nfs40client.c
create mode 100644 fs/nfs/nfs40proc.c
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] Please Pull NFS Client Updates for Linux 7.0
2026-02-12 22:06 [GIT PULL] Please Pull NFS Client Updates for Linux 7.0 Anna Schumaker
@ 2026-02-13 2:04 ` pr-tracker-bot
2026-02-16 15:31 ` Niklas Cassel
1 sibling, 0 replies; 5+ messages in thread
From: pr-tracker-bot @ 2026-02-13 2:04 UTC (permalink / raw)
To: Anna Schumaker; +Cc: linux-nfs, torvalds, anna
The pull request you sent on Thu, 12 Feb 2026 17:06:25 -0500:
> git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-7.0-1
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/7449f86bafcdb588422bb14a4babfd285e723670
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] Please Pull NFS Client Updates for Linux 7.0
2026-02-12 22:06 [GIT PULL] Please Pull NFS Client Updates for Linux 7.0 Anna Schumaker
2026-02-13 2:04 ` pr-tracker-bot
@ 2026-02-16 15:31 ` Niklas Cassel
2026-02-18 16:24 ` Anna Schumaker
1 sibling, 1 reply; 5+ messages in thread
From: Niklas Cassel @ 2026-02-16 15:31 UTC (permalink / raw)
To: Anna Schumaker; +Cc: linux-nfs, torvalds, dlemoal
On Thu, Feb 12, 2026 at 05:06:25PM -0500, Anna Schumaker wrote:
> Hi Linus,
>
> The following changes since commit 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7:
>
> Linux 6.19-rc6 (2026-01-18 15:42:45 -0800)
>
> are available in the Git repository at:
>
> git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-7.0-1
>
> for you to fetch changes up to dd2fdc3504592d85e549c523b054898a036a6afe:
>
> SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path (2026-02-09 16:39:50 -0500)
>
> ----------------------------------------------------------------
> NFS Client Updates for Linux 7.0
>
> New Features:
> * Use an LRU list for returning unused delegations
> * Introduce a KConfig option to disable NFS v4.0 and make NFS v4.1 the default
>
> Bugfixes:
> * NFS/localio: Handle short writes by retrying
> * NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
> * NFS/localio: use GFP_NOIO and non-memreclaim workqueue in nfs_local_commit
> * NFS/localio: remove -EAGAIN handling in nfs_local_doio()
> * pNFS: fix a missing wake up while waiting on NFS_LAYOUT_DRAIN
> * fs/nfs: Fix a readdir slow-start regression
> * SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path
>
> Other Cleanups and Improvements:
> * A few other NFS/localio cleanups
> * Various other delegation handling cleanups from Christoph
> * Unify security_inode_listsecurity() calls
> * Improvements to NFSv4 lease handling
> * Clean up SUNRPC *_debug fields when CONFIG_SUNRPC_DEBUG is not set
>
> Thanks,
> Anna
Hello Anna,
This seems to break my setup:
[ 103.402033] VFS: Unable to mount root fs via NFS.
[ 103.402476] devtmpfs: mounted
[ 103.406171] Freeing unused kernel memory: 4352K
[ 103.406633] Run /sbin/init as init process
[ 103.406993] with arguments:
[ 103.407253] /sbin/init
[ 103.407491] with environment:
[ 103.407767] HOME=/
[ 103.407976] TERM=linux
[ 103.408228] Run /etc/init as init process
[ 103.408580] with arguments:
[ 103.408841] /etc/init
[ 103.409071] with environment:
[ 103.409346] HOME=/
[ 103.409553] TERM=linux
[ 103.409802] Run /bin/init as init process
[ 103.410153] with arguments:
[ 103.410414] /bin/init
[ 103.410644] with environment:
[ 103.410920] HOME=/
[ 103.411128] TERM=linux
[ 103.411367] Run /bin/sh as init process
[ 103.411703] with arguments:
[ 103.411963] /bin/sh
[ 103.412179] with environment:
[ 103.412454] HOME=/
[ 103.412662] TERM=linux
[ 103.412904] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
Doing a git bisect results in:
commit 4e0269352534715915aae3fb84dd4d3bb3ff3738
Author: Anna Schumaker <anna.schumaker@oracle.com>
Date: Fri Nov 21 14:53:50 2025 -0500
NFS: Add a way to disable NFS v4.0 via KConfig
I introduce NFS4_MIN_MINOR_VERSION as a parallel to
NFS4_MAX_MINOR_VERSION to check if NFS v4.0 has been compiled in and
return an appropriate error if not.
Before commit above my config has:
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
after commit above (with make olddefconfig), my config has:
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
# CONFIG_NFS_V4_0 is not set
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
My kernel command line has:
nfsroot=192.168.1.10:/srv/nfs/rootfs,nfsvers=4
I notice that I am probably stupid who has the above, as I assumed that
it meant use the best NFS 4.x version supported by the kernel.
If I change it to:
nfsroot=192.168.1.10:/srv/nfs/rootfs,nfsvers=4.2
The config:
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
# CONFIG_NFS_V4_0 is not set
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
successfully mounts my rootfs.
So AFAICT, it seems that nfsvers=4 actually means nfsvers=4.0
I am probably not the only person to who has "nfsvers=4" on the kernel
command line.
Possible solutions I can see:
If the intention is for commit 4e0269352534 ("NFS: Add a way to disable
NFS v4.0 via KConfig") to allow people to disable NFS 4.0, we could
change the new "config NFS_V4_0" to be either "default y".
or
Perhaps we could modify "nfsvers=4" to actually mean "use whatever highest
NFS 4.x version supported by the kernel", rather than use NFS 4.0 and only
4.0.
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] Please Pull NFS Client Updates for Linux 7.0
2026-02-16 15:31 ` Niklas Cassel
@ 2026-02-18 16:24 ` Anna Schumaker
2026-02-23 20:19 ` Mike Snitzer
0 siblings, 1 reply; 5+ messages in thread
From: Anna Schumaker @ 2026-02-18 16:24 UTC (permalink / raw)
To: Niklas Cassel; +Cc: linux-nfs, torvalds, dlemoal
On Mon, Feb 16, 2026, at 10:31 AM, Niklas Cassel wrote:
> On Thu, Feb 12, 2026 at 05:06:25PM -0500, Anna Schumaker wrote:
>> Hi Linus,
>>
>> The following changes since commit 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7:
>>
>> Linux 6.19-rc6 (2026-01-18 15:42:45 -0800)
>>
>> are available in the Git repository at:
>>
>> git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-7.0-1
>>
>> for you to fetch changes up to dd2fdc3504592d85e549c523b054898a036a6afe:
>>
>> SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path (2026-02-09 16:39:50 -0500)
>>
>> ----------------------------------------------------------------
>> NFS Client Updates for Linux 7.0
>>
>> New Features:
>> * Use an LRU list for returning unused delegations
>> * Introduce a KConfig option to disable NFS v4.0 and make NFS v4.1 the default
>>
>> Bugfixes:
>> * NFS/localio: Handle short writes by retrying
>> * NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
>> * NFS/localio: use GFP_NOIO and non-memreclaim workqueue in nfs_local_commit
>> * NFS/localio: remove -EAGAIN handling in nfs_local_doio()
>> * pNFS: fix a missing wake up while waiting on NFS_LAYOUT_DRAIN
>> * fs/nfs: Fix a readdir slow-start regression
>> * SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path
>>
>> Other Cleanups and Improvements:
>> * A few other NFS/localio cleanups
>> * Various other delegation handling cleanups from Christoph
>> * Unify security_inode_listsecurity() calls
>> * Improvements to NFSv4 lease handling
>> * Clean up SUNRPC *_debug fields when CONFIG_SUNRPC_DEBUG is not set
>>
>> Thanks,
>> Anna
>
> Hello Anna,
>
> This seems to break my setup:
>
> [ 103.402033] VFS: Unable to mount root fs via NFS.
> [ 103.402476] devtmpfs: mounted
> [ 103.406171] Freeing unused kernel memory: 4352K
> [ 103.406633] Run /sbin/init as init process
> [ 103.406993] with arguments:
> [ 103.407253] /sbin/init
> [ 103.407491] with environment:
> [ 103.407767] HOME=/
> [ 103.407976] TERM=linux
> [ 103.408228] Run /etc/init as init process
> [ 103.408580] with arguments:
> [ 103.408841] /etc/init
> [ 103.409071] with environment:
> [ 103.409346] HOME=/
> [ 103.409553] TERM=linux
> [ 103.409802] Run /bin/init as init process
> [ 103.410153] with arguments:
> [ 103.410414] /bin/init
> [ 103.410644] with environment:
> [ 103.410920] HOME=/
> [ 103.411128] TERM=linux
> [ 103.411367] Run /bin/sh as init process
> [ 103.411703] with arguments:
> [ 103.411963] /bin/sh
> [ 103.412179] with environment:
> [ 103.412454] HOME=/
> [ 103.412662] TERM=linux
> [ 103.412904] Kernel panic - not syncing: No working init found. Try
> passing init= option to kernel. See Linux
> Documentation/admin-guide/init.rst for guidance.
>
>
> Doing a git bisect results in:
>
> commit 4e0269352534715915aae3fb84dd4d3bb3ff3738
> Author: Anna Schumaker <anna.schumaker@oracle.com>
> Date: Fri Nov 21 14:53:50 2025 -0500
>
> NFS: Add a way to disable NFS v4.0 via KConfig
>
> I introduce NFS4_MIN_MINOR_VERSION as a parallel to
> NFS4_MAX_MINOR_VERSION to check if NFS v4.0 has been compiled in and
> return an appropriate error if not.
>
>
>
> Before commit above my config has:
> CONFIG_NFS_FS=y
> CONFIG_NFS_V4=y
> CONFIG_NFS_V4_1=y
> CONFIG_NFS_V4_2=y
>
> after commit above (with make olddefconfig), my config has:
> CONFIG_NFS_FS=y
> CONFIG_NFS_V4=y
> # CONFIG_NFS_V4_0 is not set
> CONFIG_NFS_V4_1=y
> CONFIG_NFS_V4_2=y
>
>
>
> My kernel command line has:
> nfsroot=192.168.1.10:/srv/nfs/rootfs,nfsvers=4
>
>
> I notice that I am probably stupid who has the above, as I assumed that
> it meant use the best NFS 4.x version supported by the kernel.
>
>
> If I change it to:
> nfsroot=192.168.1.10:/srv/nfs/rootfs,nfsvers=4.2
>
> The config:
> CONFIG_NFS_FS=y
> CONFIG_NFS_V4=y
> # CONFIG_NFS_V4_0 is not set
> CONFIG_NFS_V4_1=y
> CONFIG_NFS_V4_2=y
>
> successfully mounts my rootfs.
>
>
> So AFAICT, it seems that nfsvers=4 actually means nfsvers=4.0
>
> I am probably not the only person to who has "nfsvers=4" on the kernel
> command line.
>
>
>
> Possible solutions I can see:
>
> If the intention is for commit 4e0269352534 ("NFS: Add a way to disable
> NFS v4.0 via KConfig") to allow people to disable NFS 4.0, we could
> change the new "config NFS_V4_0" to be either "default y".
This is what I intended, actually. I don't know how the missing "default y"
slipped through the cracks for this long. Thanks for pointing it out, I'll
get this fixed up!
Anna
>
> or
>
> Perhaps we could modify "nfsvers=4" to actually mean "use whatever highest
> NFS 4.x version supported by the kernel", rather than use NFS 4.0 and only
> 4.0.
>
>
>
> Kind regards,
> Niklas
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [GIT PULL] Please Pull NFS Client Updates for Linux 7.0
2026-02-18 16:24 ` Anna Schumaker
@ 2026-02-23 20:19 ` Mike Snitzer
0 siblings, 0 replies; 5+ messages in thread
From: Mike Snitzer @ 2026-02-23 20:19 UTC (permalink / raw)
To: Anna Schumaker; +Cc: Niklas Cassel, linux-nfs, torvalds, dlemoal
On Wed, Feb 18, 2026 at 11:24:42AM -0500, Anna Schumaker wrote:
>
>
> On Mon, Feb 16, 2026, at 10:31 AM, Niklas Cassel wrote:
> > On Thu, Feb 12, 2026 at 05:06:25PM -0500, Anna Schumaker wrote:
> >> Hi Linus,
> >>
> >> The following changes since commit 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7:
> >>
> >> Linux 6.19-rc6 (2026-01-18 15:42:45 -0800)
> >>
> >> are available in the Git repository at:
> >>
> >> git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-7.0-1
> >>
> >> for you to fetch changes up to dd2fdc3504592d85e549c523b054898a036a6afe:
> >>
> >> SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path (2026-02-09 16:39:50 -0500)
> >>
> >> ----------------------------------------------------------------
> >> NFS Client Updates for Linux 7.0
> >>
> >> New Features:
> >> * Use an LRU list for returning unused delegations
> >> * Introduce a KConfig option to disable NFS v4.0 and make NFS v4.1 the default
> >>
> >> Bugfixes:
> >> * NFS/localio: Handle short writes by retrying
> >> * NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
> >> * NFS/localio: use GFP_NOIO and non-memreclaim workqueue in nfs_local_commit
> >> * NFS/localio: remove -EAGAIN handling in nfs_local_doio()
> >> * pNFS: fix a missing wake up while waiting on NFS_LAYOUT_DRAIN
> >> * fs/nfs: Fix a readdir slow-start regression
> >> * SUNRPC: fix gss_auth kref leak in gss_alloc_msg error path
> >>
> >> Other Cleanups and Improvements:
> >> * A few other NFS/localio cleanups
> >> * Various other delegation handling cleanups from Christoph
> >> * Unify security_inode_listsecurity() calls
> >> * Improvements to NFSv4 lease handling
> >> * Clean up SUNRPC *_debug fields when CONFIG_SUNRPC_DEBUG is not set
> >>
> >> Thanks,
> >> Anna
> >
> > Hello Anna,
> >
> > This seems to break my setup:
> >
> > [ 103.402033] VFS: Unable to mount root fs via NFS.
> > [ 103.402476] devtmpfs: mounted
> > [ 103.406171] Freeing unused kernel memory: 4352K
> > [ 103.406633] Run /sbin/init as init process
> > [ 103.406993] with arguments:
> > [ 103.407253] /sbin/init
> > [ 103.407491] with environment:
> > [ 103.407767] HOME=/
> > [ 103.407976] TERM=linux
> > [ 103.408228] Run /etc/init as init process
> > [ 103.408580] with arguments:
> > [ 103.408841] /etc/init
> > [ 103.409071] with environment:
> > [ 103.409346] HOME=/
> > [ 103.409553] TERM=linux
> > [ 103.409802] Run /bin/init as init process
> > [ 103.410153] with arguments:
> > [ 103.410414] /bin/init
> > [ 103.410644] with environment:
> > [ 103.410920] HOME=/
> > [ 103.411128] TERM=linux
> > [ 103.411367] Run /bin/sh as init process
> > [ 103.411703] with arguments:
> > [ 103.411963] /bin/sh
> > [ 103.412179] with environment:
> > [ 103.412454] HOME=/
> > [ 103.412662] TERM=linux
> > [ 103.412904] Kernel panic - not syncing: No working init found. Try
> > passing init= option to kernel. See Linux
> > Documentation/admin-guide/init.rst for guidance.
> >
> >
> > Doing a git bisect results in:
> >
> > commit 4e0269352534715915aae3fb84dd4d3bb3ff3738
> > Author: Anna Schumaker <anna.schumaker@oracle.com>
> > Date: Fri Nov 21 14:53:50 2025 -0500
> >
> > NFS: Add a way to disable NFS v4.0 via KConfig
> >
> > I introduce NFS4_MIN_MINOR_VERSION as a parallel to
> > NFS4_MAX_MINOR_VERSION to check if NFS v4.0 has been compiled in and
> > return an appropriate error if not.
> >
> >
> >
> > Before commit above my config has:
> > CONFIG_NFS_FS=y
> > CONFIG_NFS_V4=y
> > CONFIG_NFS_V4_1=y
> > CONFIG_NFS_V4_2=y
> >
> > after commit above (with make olddefconfig), my config has:
> > CONFIG_NFS_FS=y
> > CONFIG_NFS_V4=y
> > # CONFIG_NFS_V4_0 is not set
> > CONFIG_NFS_V4_1=y
> > CONFIG_NFS_V4_2=y
> >
> >
> >
> > My kernel command line has:
> > nfsroot=192.168.1.10:/srv/nfs/rootfs,nfsvers=4
> >
> >
> > I notice that I am probably stupid who has the above, as I assumed that
> > it meant use the best NFS 4.x version supported by the kernel.
> >
> >
> > If I change it to:
> > nfsroot=192.168.1.10:/srv/nfs/rootfs,nfsvers=4.2
> >
> > The config:
> > CONFIG_NFS_FS=y
> > CONFIG_NFS_V4=y
> > # CONFIG_NFS_V4_0 is not set
> > CONFIG_NFS_V4_1=y
> > CONFIG_NFS_V4_2=y
> >
> > successfully mounts my rootfs.
> >
> >
> > So AFAICT, it seems that nfsvers=4 actually means nfsvers=4.0
> >
> > I am probably not the only person to who has "nfsvers=4" on the kernel
> > command line.
> >
> >
> >
> > Possible solutions I can see:
> >
> > If the intention is for commit 4e0269352534 ("NFS: Add a way to disable
> > NFS v4.0 via KConfig") to allow people to disable NFS 4.0, we could
> > change the new "config NFS_V4_0" to be either "default y".
>
> This is what I intended, actually. I don't know how the missing "default y"
> slipped through the cracks for this long. Thanks for pointing it out, I'll
> get this fixed up!
>
> Anna
>
> >
> > or
> >
> > Perhaps we could modify "nfsvers=4" to actually mean "use whatever highest
> > NFS 4.x version supported by the kernel", rather than use NFS 4.0 and only
> > 4.0.
Another related problem I just encountered, when doing a bisect that
pivoted from 7.0-rc1 back down to 6.19, is that "make olddefconfig"
using the 7.0-rc1's .config as starting point against 6.19 kernel
results in:
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_V4_2 is not set
CONFIG_PNFS_FLEXFILE_LAYOUT=m doesn't exist, etc. So this change
seriously breaks NFS bisect-ability.
Feels like the new CONFIG_NFS_V4_0 control should be standalone and
CONFIG_NFS_V4_1 shouldn't be removed. But the devil is in the details
I'm sure...
Mike
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-23 20:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-12 22:06 [GIT PULL] Please Pull NFS Client Updates for Linux 7.0 Anna Schumaker
2026-02-13 2:04 ` pr-tracker-bot
2026-02-16 15:31 ` Niklas Cassel
2026-02-18 16:24 ` Anna Schumaker
2026-02-23 20:19 ` Mike Snitzer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox