|
@@ -344,10 +344,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
|
|
|
all 32 bits of 'nseconds'. */
|
|
|
READ_BUF(12);
|
|
|
len += 12;
|
|
|
- READ32(dummy32);
|
|
|
- if (dummy32)
|
|
|
- return nfserr_inval;
|
|
|
- READ32(iattr->ia_atime.tv_sec);
|
|
|
+ READ64(iattr->ia_atime.tv_sec);
|
|
|
READ32(iattr->ia_atime.tv_nsec);
|
|
|
if (iattr->ia_atime.tv_nsec >= (u32)1000000000)
|
|
|
return nfserr_inval;
|
|
@@ -370,10 +367,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
|
|
|
all 32 bits of 'nseconds'. */
|
|
|
READ_BUF(12);
|
|
|
len += 12;
|
|
|
- READ32(dummy32);
|
|
|
- if (dummy32)
|
|
|
- return nfserr_inval;
|
|
|
- READ32(iattr->ia_mtime.tv_sec);
|
|
|
+ READ64(iattr->ia_mtime.tv_sec);
|
|
|
READ32(iattr->ia_mtime.tv_nsec);
|
|
|
if (iattr->ia_mtime.tv_nsec >= (u32)1000000000)
|
|
|
return nfserr_inval;
|
|
@@ -2372,8 +2366,7 @@ out_acl:
|
|
|
if (bmval1 & FATTR4_WORD1_TIME_ACCESS) {
|
|
|
if ((buflen -= 12) < 0)
|
|
|
goto out_resource;
|
|
|
- WRITE32(0);
|
|
|
- WRITE32(stat.atime.tv_sec);
|
|
|
+ WRITE64((s64)stat.atime.tv_sec);
|
|
|
WRITE32(stat.atime.tv_nsec);
|
|
|
}
|
|
|
if (bmval1 & FATTR4_WORD1_TIME_DELTA) {
|
|
@@ -2386,15 +2379,13 @@ out_acl:
|
|
|
if (bmval1 & FATTR4_WORD1_TIME_METADATA) {
|
|
|
if ((buflen -= 12) < 0)
|
|
|
goto out_resource;
|
|
|
- WRITE32(0);
|
|
|
- WRITE32(stat.ctime.tv_sec);
|
|
|
+ WRITE64((s64)stat.ctime.tv_sec);
|
|
|
WRITE32(stat.ctime.tv_nsec);
|
|
|
}
|
|
|
if (bmval1 & FATTR4_WORD1_TIME_MODIFY) {
|
|
|
if ((buflen -= 12) < 0)
|
|
|
goto out_resource;
|
|
|
- WRITE32(0);
|
|
|
- WRITE32(stat.mtime.tv_sec);
|
|
|
+ WRITE64((s64)stat.mtime.tv_sec);
|
|
|
WRITE32(stat.mtime.tv_nsec);
|
|
|
}
|
|
|
if (bmval1 & FATTR4_WORD1_MOUNTED_ON_FILEID) {
|