VirtualBox

Changeset 77744 in vbox


Ignore:
Timestamp:
Mar 17, 2019 4:14:55 AM (6 years ago)
Author:
vboxsync
Message:

IPRT/RTPathSetTimesEx/posix: Try fall back on utimes if kernel doesn't grok lutimes. This is helpful for FsPerf and others running on ancient kernels.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/posix/path2-posix.cpp

    r76553 r77744  
    195195                {
    196196                    if (lutimes(pszNativePath, aTimevals))
    197                         rc = RTErrConvertFromErrno(errno);
     197                    {
     198                        /* If lutimes is not supported (e.g. linux < 2.6.22), try fall back on utimes: */
     199                        if (errno != ENOSYS)
     200                            rc = RTErrConvertFromErrno(errno);
     201                        else
     202                        {
     203                            if (pAccessTime && pModificationTime)
     204                                rc = RTPathQueryInfoEx(pszPath, &ObjInfo, RTFSOBJATTRADD_UNIX, fFlags);
     205                            if (RT_SUCCESS(rc) && !RTFS_IS_SYMLINK(ObjInfo.Attr.fMode))
     206                            {
     207                                if (utimes(pszNativePath, aTimevals))
     208                                    rc = RTErrConvertFromErrno(errno);
     209                            }
     210                            else
     211                                rc = VERR_NOT_SUPPORTED;
     212                        }
     213                    }
    198214                }
    199215#else
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette