Eric Blake <[email protected]> writes: > By the way, is there any reliable way, other than uname() and checking for > a minimum kernel version, to tell if all file systems will properly > support UTIME_OMIT?
Um... sorry, I don't know. And it might be hard to detect efficiently if the workaround is enough efficient like one fstat() syscall (Pass fd to kernel. I.e. just read from cached inode). > For coreutils 8.3, we will be inserting a workaround where instead of > using UTIME_OMIT, we call fstatat() in advance of utimensat() and pass > the original timestamp down. But it would be nice to avoid the > penalty of the extra stat if there were a reliable way to ensure that, > regardless of file system, the use of UTIME_OMIT will be honored. > After all, coreutils wants touch(1) to work regardless of how old the > user's kernel and file system drivers are. Or it would depend on coreutils policy though, personally I think it's ok that it ignores the bug as known fs bug, otherwise coreutils would need to collect workarounds on several filesystems of several OSes. Thanks. -- OGAWA Hirofumi <[email protected]>
