@@ -61,7 +61,8 @@ struct inode *ramfs_get_inode(struct super_block *sb,
inode->i_mapping->a_ops = &ramfs_aops;
mapping_set_gfp_mask(inode->i_mapping, GFP_HIGHUSER);
mapping_set_unevictable(inode->i_mapping);
- inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+ inode->i_atime = inode->i_mtime =
+ inode->i_ctime = current_fs_time(sb);
switch (mode & S_IFMT) {
default:
init_special_inode(inode, mode, dev);
@@ -93,14 +94,15 @@ struct inode *ramfs_get_inode(struct super_block *sb,
static int
ramfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
{
- struct inode * inode = ramfs_get_inode(dir->i_sb, dir, mode, dev);
+ struct super_block *sb = dir->i_sb;
+ struct inode *inode = ramfs_get_inode(sb, dir, mode, dev);
int error = -ENOSPC;
if (inode) {
d_instantiate(dentry, inode);
dget(dentry); /* Extra count - pin the dentry in core */
error = 0;
- dir->i_mtime = dir->i_ctime = CURRENT_TIME;
+ dir->i_mtime = dir->i_ctime = current_fs_time(sb);
}
return error;
}
@@ -120,17 +122,18 @@ static int ramfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
static int ramfs_symlink(struct inode * dir, struct dentry *dentry, const char * symname)
{
+ struct super_block *sb = dir->i_sb;
struct inode *inode;
int error = -ENOSPC;
- inode = ramfs_get_inode(dir->i_sb, dir, S_IFLNK|S_IRWXUGO, 0);
+ inode = ramfs_get_inode(sb, dir, S_IFLNK|S_IRWXUGO, 0);
if (inode) {
int l = strlen(symname)+1;
error = page_symlink(inode, symname, l);
if (!error) {
d_instantiate(dentry, inode);
dget(dentry);
- dir->i_mtime = dir->i_ctime = CURRENT_TIME;
+ dir->i_mtime = dir->i_ctime = current_fs_time(sb);
} else
iput(inode);
}
CURRENT_TIME macro is not appropriate for filesystems as it doesn't use the right granularity for filesystem timestamps. Use current_fs_time() instead. Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: David Howells <dhowells@redhat.com> Cc: Michal Hocko <mhocko@suse.com> --- fs/ramfs/inode.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)