Post-r248567, there were times when the client would return a

truncated directory for some NFS servers. This turned out to
be because the size of a directory reported by an NFS server
can be smaller that the ufs-like directory created from the
RPC XDR in the client. This patch fixes the problem by changing
r248567 so that vnode_pager_setsize() is only done for regular files.

Reported and tested by:	hartmut.brandt@dlr.de
Reviewed by:	kib
MFC after:	1 week
This commit is contained in:
Rick Macklem 2013-05-28 22:36:01 +00:00
parent c2cfcb6063
commit 734b03c38d

View File

@ -448,12 +448,10 @@ nfscl_loadattrcache(struct vnode **vpp, struct nfsvattr *nap, void *nvaper,
np->n_size = vap->va_size;
np->n_flag |= NSIZECHANGED;
}
} else {
np->n_size = vap->va_size;
}
if (vap->va_type == VREG || vap->va_type == VDIR) {
setnsize = 1;
nsize = vap->va_size;
} else {
np->n_size = vap->va_size;
}
}
/*