memset (de->name + namelen, 0, SYSV_DIRSIZE - namelen - 2);
        de->inode = cpu_to_fs16(SYSV_SB(inode->i_sb), inode->i_ino);
        dir_commit_chunk(page, pos, SYSV_DIRSIZE);
-       dir->i_mtime = dir->i_ctime = current_time(dir);
+       dir->i_mtime = inode_set_ctime_current(dir);
        mark_inode_dirty(dir);
        err = sysv_handle_dirsync(dir);
 out_page:
        }
        de->inode = 0;
        dir_commit_chunk(page, pos, SYSV_DIRSIZE);
-       inode->i_ctime = inode->i_mtime = current_time(inode);
+       inode->i_mtime = inode_set_ctime_current(inode);
        mark_inode_dirty(inode);
        return sysv_handle_dirsync(inode);
 }
        }
        de->inode = cpu_to_fs16(SYSV_SB(inode->i_sb), inode->i_ino);
        dir_commit_chunk(page, pos, SYSV_DIRSIZE);
-       dir->i_mtime = dir->i_ctime = current_time(dir);
+       dir->i_mtime = inode_set_ctime_current(dir);
        mark_inode_dirty(dir);
        return sysv_handle_dirsync(inode);
 }
 
        dirty_sb(sb);
        inode_init_owner(&nop_mnt_idmap, inode, dir, mode);
        inode->i_ino = fs16_to_cpu(sbi, ino);
-       inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
+       inode->i_mtime = inode->i_atime = inode_set_ctime_current(inode);
        inode->i_blocks = 0;
        memset(SYSV_I(inode)->i_data, 0, sizeof(SYSV_I(inode)->i_data));
        SYSV_I(inode)->i_dir_start_lookup = 0;
 
        inode->i_size = fs32_to_cpu(sbi, raw_inode->i_size);
        inode->i_atime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_atime);
        inode->i_mtime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_mtime);
-       inode->i_ctime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_ctime);
-       inode->i_ctime.tv_nsec = 0;
+       inode_set_ctime(inode, fs32_to_cpu(sbi, raw_inode->i_ctime), 0);
        inode->i_atime.tv_nsec = 0;
        inode->i_mtime.tv_nsec = 0;
        inode->i_blocks = 0;
        raw_inode->i_size = cpu_to_fs32(sbi, inode->i_size);
        raw_inode->i_atime = cpu_to_fs32(sbi, inode->i_atime.tv_sec);
        raw_inode->i_mtime = cpu_to_fs32(sbi, inode->i_mtime.tv_sec);
-       raw_inode->i_ctime = cpu_to_fs32(sbi, inode->i_ctime.tv_sec);
+       raw_inode->i_ctime = cpu_to_fs32(sbi, inode_get_ctime(inode).tv_sec);
 
        si = SYSV_I(inode);
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
 
        *where->p = where->key;
        write_unlock(&pointers_lock);
 
-       inode->i_ctime = current_time(inode);
+       inode_set_ctime_current(inode);
 
        /* had we spliced it onto indirect block? */
        if (where->bh)
                }
                n++;
        }
-       inode->i_mtime = inode->i_ctime = current_time(inode);
+       inode->i_mtime = inode_set_ctime_current(inode);
        if (IS_SYNC(inode))
                sysv_sync_inode (inode);
        else
 
 {
        struct inode *inode = d_inode(old_dentry);
 
-       inode->i_ctime = current_time(inode);
+       inode_set_ctime_current(inode);
        inode_inc_link_count(inode);
        ihold(inode);
 
 
        err = sysv_delete_entry(de, page);
        if (!err) {
-               inode->i_ctime = dir->i_ctime;
+               inode_set_ctime_to_ts(inode, inode_get_ctime(dir));
                inode_dec_link_count(inode);
        }
        unmap_and_put_page(page, de);
                unmap_and_put_page(new_page, new_de);
                if (err)
                        goto out_dir;
-               new_inode->i_ctime = current_time(new_inode);
+               inode_set_ctime_current(new_inode);
                if (dir_de)
                        drop_nlink(new_inode);
                inode_dec_link_count(new_inode);