Tavian Barnes d7dbed457c nfsd: Fix creation time serialization order
In nfsd4_encode_fattr(), TIME_CREATE was being written out after all
other times.  However, they should be written out in an order that
matches the bit flags in bmval1, which in this case are

    #define FATTR4_WORD1_TIME_ACCESS        (1UL << 15)
    #define FATTR4_WORD1_TIME_CREATE        (1UL << 18)
    #define FATTR4_WORD1_TIME_DELTA         (1UL << 19)
    #define FATTR4_WORD1_TIME_METADATA      (1UL << 20)
    #define FATTR4_WORD1_TIME_MODIFY        (1UL << 21)

so TIME_CREATE should come second.

I noticed this on a FreeBSD NFSv4.2 client, which supports creation
times.  On this client, file times were weirdly permuted.  With this
patch applied on the server, times looked normal on the client.

Fixes: e377a3e698fb ("nfsd: Add support for the birth time attribute")
Link: https://unix.stackexchange.com/q/749605/56202
Signed-off-by: Tavian Barnes <tavianator@tavianator.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2023-06-27 12:10:47 -04:00
..
2023-05-05 19:12:01 -07:00
2023-02-20 14:10:36 -08:00
2023-06-02 17:16:19 -04:00
2023-04-27 16:52:33 -07:00
2023-02-27 10:04:49 -08:00
2023-04-26 16:07:23 -07:00
2023-03-01 08:42:27 -08:00
\n
2023-04-26 09:07:46 -07:00
2023-04-26 09:42:10 -07:00
2023-04-27 11:53:57 -07:00
2023-05-10 17:15:18 +02:00
2023-04-29 10:35:48 -07:00
2023-04-24 19:20:27 -07:00
2023-04-27 11:53:57 -07:00
2023-04-29 10:52:37 -07:00
2023-04-27 17:03:40 -07:00
2023-03-14 12:56:30 -06:00
\n
2023-04-26 09:07:46 -07:00
2023-06-01 08:27:34 -04:00
2023-03-12 20:03:41 -04:00
2023-05-11 16:51:11 -05:00
2023-03-30 08:51:48 +02:00
2023-04-08 13:45:37 -07:00
2022-08-20 11:34:33 -04:00
2023-04-05 18:06:23 -07:00
2022-10-10 19:45:17 -07:00
2023-04-28 15:57:53 -07:00
2023-02-20 11:53:11 -08:00
2023-05-06 08:28:58 -07:00
2022-10-10 14:21:11 -07:00
2023-01-19 09:24:30 +01:00
2023-04-24 19:14:20 -07:00
2023-04-06 14:53:38 +02:00
2023-03-06 09:59:20 +01:00
2023-05-06 08:15:20 -07:00
2023-02-20 11:53:11 -08:00
2023-02-20 11:53:11 -08:00