Linux NFS development
 help / color / mirror / Atom feed
From: "Jörg Sommer" <joerg@jo-so.de>
To: Chuck Lever <cel@kernel.org>
Cc: NeilBrown <neil@brown.name>, Jeff Layton <jlayton@kernel.org>,
	 Olga Kornievskaia <okorniev@redhat.com>,
	Dai Ngo <dai.ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
	 linux-nfs@vger.kernel.org, Chuck Lever <chuck.lever@oracle.com>
Subject: Re: [PATCH 2/2] NFS: NFSERR_INVAL is not defined by NFSv2
Date: Fri, 28 Aug 2026 10:48:51 +0200	[thread overview]
Message-ID: <apE90ZRZB8IW_AiS@jo-so.de> (raw)
In-Reply-To: <20251210002850.318350-3-cel@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 4070 bytes --]

Chuck Lever schrieb am Di 09. Dez, 19:28 (-0500):
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> A documenting comment in include/uapi/linux/nfs.h claims incorrectly
> that NFSv2 defines NFSERR_INVAL. There is no such definition in either
> RFC 1094 or https://pubs.opengroup.org/onlinepubs/9629799/chap7.htm
> 
> NFS3ERR_INVAL is introduced in RFC 1813.

Hello,

since this commit 0ac903d1bfdce8ff40657c2b7d996947b72b6645 was added, U-Boot
2022.04 (I don't know about newer versions) can no longer access symlinks in
NFS shares. When I revert this commit, U-Boot can load the file behind the
symlink. Real files are no problem.

The file I want to load is a symlink at the server:

```
% ls -l /srv/nfs/boot/Image.gz*
lrwxrwxrwx 1 root root      41  7. Jul 16:29 /srv/nfs-con/boot/Image.gz -> Image.gz-5.15.213-imx8mm+gfffa4b6d4aea+p1
-rw-r--r-- 1 root root 5279373  7. Jul 16:29 /srv/nfs-con/boot/Image.gz-5.15.213-imx8mm+gfffa4b6d4aea+p1
```

Without this commit:

```
u-boot=> nfs 0x42000000 /srv/nfs/boot/Image.gz
Filename '/srv/nfs-con/boot/Image.gz'.
Load address: 0x42000000
Loading: #################################################################
done
Bytes transferred = 5279373 (508e8d hex)
```

But with this commit:

```
u-boot=> nfs 0x42000000 /srv/nfs/boot/Image.gz
Filename '/srv/nfs-con/boot/Image.gz'.
Load address: 0x42000000
Loading:
done
```

This is the network traffic:

```
No.	Time	Protocol	Length	Info
3	0.000370	Portmap	98	V2 GETPORT Call (Reply In 4) MOUNT(100005) V:1 UDP
4	0.000607	Portmap	70	V2 GETPORT Reply (Call In 3) Port:60340
5	0.000949	Portmap	98	V2 GETPORT Call (Reply In 6) NFS(100003) V:2 UDP
6	0.001046	Portmap	70	V2 GETPORT Reply (Call In 5) Port:2049
7	0.001368	MOUNT	126	V2 MNT Call (Reply In 8) /srv/nfs-con/boot
8	0.008026	MOUNT	102	V2 MNT Reply (Call In 7)
9	0.008389	NFS	146	V2 LOOKUP Call (Reply In 10), DH: 0x8c279135/Image.gz
10	0.008754	NFS	170	V2 LOOKUP Reply (Call In 9), FH: 0xcdddf154
11	0.009095	NFS	146	V2 READ Call (Reply In 12), FH: 0xcdddf154 Offset: 0 Count: 1024 TotalCount: 0
12	0.009189	NFS	70	V2 READ Reply (Call In 11) Error: NFS2ERR_IO
13	0.009511	MOUNT	102	V2 UMNTALL Call (Reply In 14)
14	0.010301	MOUNT	66	V2 UMNTALL Reply (Call In 13)
```

From packet 11 V2 READ Call

```
Remote Procedure Call, Type:Call XID:0x000050e1
    XID: 0x000050e1 (20705)
    Message Type: Call (0)
    RPC Version: 2
    Program: NFS (100003)
    Program Version: 2
    Procedure: READ (6)
    [The reply to this request is in frame 12]
    Credentials
        Flavor: AUTH_UNIX (1)
        Length: 20
        Stamp: 0x00000000
        Machine Name: <EMPTY>
        UID: 0
        GID: 0
        Auxiliary GIDs (0)
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
Network File System, READ Call FH: 0xcdddf154 Offset: 0 Count: 1024 TotalCount: 0
    [Program Version: 2]
    [V2 Procedure: READ (6)]
    file
        [hash (CRC-32): 0xcdddf154]
        FileHandle: 010004010100540020bb3809040054002f2edde4000000000000000000000000
    Offset: 0
    Count: 1024
    Total Count: 0
```

From packet 12 V2 READ Reply

```
Remote Procedure Call, Type:Reply XID:0x000050e1
    XID: 0x000050e1 (20705)
    Message Type: Reply (1)
    [Program: NFS (100003)]
    [Program Version: 2]
    [Procedure: READ (6)]
    Reply State: accepted (0)
    [This is a reply to a request in frame 11]
    [Time from request: 94.000 microseconds]
    Verifier
        Flavor: AUTH_NULL (0)
        Length: 0
    Accept State: RPC executed successfully (0)
Network File System, READ Reply  Error: NFS2ERR_IO
    [Program Version: 2]
    [V2 Procedure: READ (6)]
    Status: NFS2ERR_IO (5)
```


I can locally revert this commit in our kernel, but is there any other way
to get it working again?


Thanks in advance.

Best regards Jörg

-- 
Optimisten haben gar keine Ahnung von den freudigen Überraschungen, die
Pessimisten erleben.
                                                (Peter Bramm)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2026-08-28  9:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-10  0:28 [PATCH 0/2] Address minor issues with status codes Chuck Lever
2025-12-10  0:28 ` [PATCH 1/2] NFSD: Remove NFSERR_EAGAIN Chuck Lever
2025-12-10  0:28 ` [PATCH 2/2] NFS: NFSERR_INVAL is not defined by NFSv2 Chuck Lever
2026-08-28  8:48   ` Jörg Sommer [this message]
2026-08-28 11:33     ` NeilBrown
2026-08-28 11:59       ` Jörg Sommer
2026-08-28 13:27       ` Chuck Lever
2026-08-28 20:51         ` Tom Rini
2026-08-28 21:06           ` Chuck Lever
2026-08-28 21:18             ` Tom Rini
2026-08-28 22:04               ` Chuck Lever
2026-08-28 22:12                 ` Tom Rini
2026-08-28 22:36                 ` NeilBrown
2026-08-28 23:14                   ` Chuck Lever
2025-12-10  0:49 ` [PATCH 0/2] Address minor issues with status codes Jeff Layton
2025-12-10  1:01   ` NeilBrown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=apE90ZRZB8IW_AiS@jo-so.de \
    --to=joerg@jo-so.de \
    --cc=cel@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=dai.ngo@oracle.com \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=neil@brown.name \
    --cc=okorniev@redhat.com \
    --cc=tom@talpey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox