mirror of
https://github.com/opnsense/src.git
synced 2026-05-27 03:33:51 -04:00
When the MDS of a pNFS service receives an Open/Create
and the file already exists, it must do a Setattr of
size == 0. Without this patch, this was eroneously
done via a VOP_SETAATR() call, which would set the
length of the MDS file to 0 (which is already is,
since all data lives on the DSs).
This patch fixes the problem by doing a nfsvno_setattr()
instead of VOP_SETATTR(), which knows to do a proxied
Setattr on the DSs.
For a non-pNFS server, the change has no effect, since
nfsvno_setattr() only does a VOP_SETATTR() for that case.
This was found during a recent IETF NFSv4 testing event.
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| nfs_fha_new.c | ||
| nfs_fha_new.h | ||
| nfs_nfsdcache.c | ||
| nfs_nfsdkrpc.c | ||
| nfs_nfsdport.c | ||
| nfs_nfsdserv.c | ||
| nfs_nfsdsocket.c | ||
| nfs_nfsdstate.c | ||
| nfs_nfsdsubs.c | ||