/* Change the requested timestamp in the given inode. We don't lock across timestamp updates, and we don't log them but we do record the fact that there is dirty information in core.  */
void xfs_ichgtime(xfs_inode_t *ip, int flags)
/* Change the requested timestamp in the given inode. We don't lock across timestamp updates, and we don't log them but we do record the fact that there is dirty information in core.  */
void xfs_ichgtime(xfs_inode_t *ip, int flags)
{
	struct inode	*inode = VFS_I(ip);
	timespec_t	tv;
	int		sync_it = 0;
	tv = current_fs_time(inode->i_sb);
	if ((flags & XFS_ICHGTIME_MOD) &&
	    !timespec_equal(&inode->i_mtime, &tv)) {
		inode->i_mtime = tv;
		sync_it = 1;
	}
	if ((flags & XFS_ICHGTIME_CHG) &&
	    !timespec_equal(&inode->i_ctime, &tv)) {
		inode->i_ctime = tv;
		sync_it = 1;
	}
	if (sync_it)
		xfs_mark_inode_dirty_sync(ip);
}