Print this page
7123 encode timestamps in rfs4_op_readdir()

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/nfs/nfs4_srv_readdir.c
          +++ new/usr/src/uts/common/fs/nfs/nfs4_srv_readdir.c
↓ open down ↓ 1389 lines elided ↑ open up ↑
1390 1390                              FATTR4_TIME_ACCESS_SET_MASK |
1391 1391                              FATTR4_TIME_BACKUP_MASK |
1392 1392                              FATTR4_TIME_CREATE_MASK |
1393 1393                              FATTR4_TIME_DELTA_MASK |
1394 1394                              FATTR4_TIME_METADATA_MASK |
1395 1395                              FATTR4_TIME_MODIFY_MASK |
1396 1396                              FATTR4_TIME_MODIFY_SET_MASK |
1397 1397                              FATTR4_MOUNTED_ON_FILEID_MASK)) {
1398 1398  
1399 1399                                  if (ae & FATTR4_TIME_ACCESS_MASK) {
1400      -                                        u_longlong_t sec =
1401      -                                            (u_longlong_t)va.va_atime.tv_sec;
1402      -                                        uint_t nsec =
1403      -                                            (uint_t)va.va_atime.tv_nsec;
1404      -                                        IXDR_PUT_HYPER(ptr, sec);
1405      -                                        IXDR_PUT_INT32(ptr, nsec);
     1400 +                                        nfstime4 atime;
     1401 +                                        (void) nfs4_time_vton(&va.va_atime,
     1402 +                                            &atime);
     1403 +                                        IXDR_PUT_HYPER(ptr, atime.seconds);
     1404 +                                        IXDR_PUT_INT32(ptr, atime.nseconds);
1406 1405                                  }
1407 1406                                  if (ae & FATTR4_TIME_ACCESS_SET_MASK) {
1408 1407                                          ASSERT(0);
1409 1408                                  }
1410 1409                                  if (ae & FATTR4_TIME_BACKUP_MASK) {
1411 1410                                          ASSERT(0);
1412 1411                                  }
1413 1412                                  if (ae & FATTR4_TIME_CREATE_MASK) {
1414 1413                                          ASSERT(0);
1415 1414                                  }
1416 1415                                  if (ae & FATTR4_TIME_DELTA_MASK) {
1417 1416                                          u_longlong_t sec = 0;
1418 1417                                          uint_t nsec = 1000;
1419 1418                                          IXDR_PUT_HYPER(ptr, sec);
1420 1419                                          IXDR_PUT_INT32(ptr, nsec);
1421 1420                                  }
1422 1421                                  if (ae & FATTR4_TIME_METADATA_MASK) {
1423      -                                        u_longlong_t sec =
1424      -                                            (u_longlong_t)va.va_ctime.tv_sec;
1425      -                                        uint_t nsec =
1426      -                                            (uint_t)va.va_ctime.tv_nsec;
1427      -                                        IXDR_PUT_HYPER(ptr, sec);
1428      -                                        IXDR_PUT_INT32(ptr, nsec);
     1422 +                                        nfstime4 ctime;
     1423 +                                        (void) nfs4_time_vton(&va.va_ctime,
     1424 +                                            &ctime);
     1425 +                                        IXDR_PUT_HYPER(ptr, ctime.seconds);
     1426 +                                        IXDR_PUT_INT32(ptr, ctime.nseconds);
1429 1427                                  }
1430 1428                                  if (ae & FATTR4_TIME_MODIFY_MASK) {
1431      -                                        u_longlong_t sec =
1432      -                                            (u_longlong_t)va.va_mtime.tv_sec;
1433      -                                        uint_t nsec =
1434      -                                            (uint_t)va.va_mtime.tv_nsec;
1435      -                                        IXDR_PUT_HYPER(ptr, sec);
1436      -                                        IXDR_PUT_INT32(ptr, nsec);
     1429 +                                        nfstime4 mtime;
     1430 +                                        (void) nfs4_time_vton(&va.va_mtime,
     1431 +                                            &mtime);
     1432 +                                        IXDR_PUT_HYPER(ptr, mtime.seconds);
     1433 +                                        IXDR_PUT_INT32(ptr, mtime.nseconds);
1437 1434                                  }
1438 1435                                  if (ae & FATTR4_TIME_MODIFY_SET_MASK) {
1439 1436                                          ASSERT(0);
1440 1437                                  }
1441 1438                                  if (ae & FATTR4_MOUNTED_ON_FILEID_MASK) {
1442 1439                                          IXDR_PUT_HYPER(ptr, dp->d_ino);
1443 1440                                  }
1444 1441                                  /* Check the redzone boundary */
1445 1442                                  if (ptr > ptr_redzone) {
1446 1443                                          if (nents || IS_MIN_ATTR_MASK(ar)) {
↓ open down ↓ 100 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX