Message types for VFS utime

Change-Id: If7e5faa13a824528fd8ca02bd6982e04d48032e9
This commit is contained in:
2014-04-29 20:08:54 +02:00
parent 135346dfc3
commit cadcb6d061
6 changed files with 52 additions and 40 deletions

View File

@@ -26,14 +26,14 @@ int fs_utime(void)
if (global_pu->pu_ops.puffs_node_setattr == NULL)
return(EINVAL);
if( (pn = puffs_pn_nodewalk(global_pu, 0, &fs_m_in.REQ_INODE_NR)) == NULL)
if( (pn = puffs_pn_nodewalk(global_pu, 0, &fs_m_in.m_vfs_fs_utime.inode)) == NULL)
return(EINVAL);
puffs_vattr_null(&va);
va.va_atime.tv_sec = fs_m_in.REQ_ACTIME;
va.va_atime.tv_nsec = fs_m_in.REQ_ACNSEC;
va.va_mtime.tv_sec = fs_m_in.REQ_MODTIME;
va.va_mtime.tv_nsec = fs_m_in.REQ_MODNSEC;
va.va_atime.tv_sec = fs_m_in.m_vfs_fs_utime.actime;
va.va_atime.tv_nsec = fs_m_in.m_vfs_fs_utime.acnsec;
va.va_mtime.tv_sec = fs_m_in.m_vfs_fs_utime.modtime;
va.va_mtime.tv_nsec = fs_m_in.m_vfs_fs_utime.modnsec;
va.va_ctime = clock_timespec();
if (global_pu->pu_ops.puffs_node_setattr(global_pu, pn, &va, pcr) != 0)

View File

@@ -147,7 +147,7 @@ int do_utime(void)
if (state.s_read_only)
return EROFS;
if ((ino = find_inode(m_in.REQ_INODE_NR)) == NULL)
if ((ino = find_inode(m_in.m_vfs_fs_utime.inode)) == NULL)
return EINVAL;
if ((r = verify_inode(ino, path, NULL)) != OK)
@@ -155,35 +155,35 @@ int do_utime(void)
attr.a_mask = 0;
switch(m_in.REQ_ACNSEC) {
switch(m_in.m_vfs_fs_utime.acnsec) {
case UTIME_OMIT: /* do not touch */
break;
case UTIME_NOW:
/* XXX VFS should have time() into ACTIME, for compat; we trust it! */
m_in.REQ_ACNSEC = 0;
m_in.m_vfs_fs_utime.acnsec = 0;
/*FALLTHROUGH*/
default:
/* cases m_in.REQ_ACNSEC < 0 || m_in.REQ_ACNSEC >= 1E9
/* cases m_in.m_vfs_fs_utime.acnsec < 0 || m_in.m_vfs_fs_utime.acnsec >= 1E9
* are caught by VFS to cooperate with old instances of EXT2
*/
attr.a_atime.tv_sec = m_in.REQ_ACTIME;
attr.a_atime.tv_nsec = m_in.REQ_ACNSEC;
attr.a_atime.tv_sec = m_in.m_vfs_fs_utime.actime;
attr.a_atime.tv_nsec = m_in.m_vfs_fs_utime.acnsec;
attr.a_mask |= SFFS_ATTR_ATIME;
break;
}
switch(m_in.REQ_MODNSEC) {
switch(m_in.m_vfs_fs_utime.modnsec) {
case UTIME_OMIT: /* do not touch */
break;
case UTIME_NOW:
/* XXX VFS should have time() into MODTIME, for compat; we trust it! */
m_in.REQ_MODNSEC = 0;
m_in.m_vfs_fs_utime.modnsec = 0;
/*FALLTHROUGH*/
default:
/* cases m_in.REQ_MODNSEC < 0 || m_in.REQ_MODNSEC >= 1E9
/* cases m_in.m_vfs_fs_utime.modnsec < 0 || m_in.m_vfs_fs_utime.modnsec >= 1E9
* are caught by VFS to cooperate with old instances
*/
attr.a_mtime.tv_sec = m_in.REQ_MODTIME;
attr.a_mtime.tv_nsec = m_in.REQ_MODNSEC;
attr.a_mtime.tv_sec = m_in.m_vfs_fs_utime.modtime;
attr.a_mtime.tv_nsec = m_in.m_vfs_fs_utime.modnsec;
attr.a_mask |= SFFS_ATTR_MTIME;
break;
}