orangefs: do not invalidate attributes on inode create
authorMartin Brandenburg <martin@omnibond.com>
Wed, 1 Aug 2018 18:12:34 +0000 (18:12 +0000)
committerMike Marshall <hubcap@omnibond.com>
Fri, 3 May 2019 18:32:37 +0000 (14:32 -0400)
When an inode is created, we fetch attributes from the server.  There is
no need to turn around and invalidate them.

No need to initialize attributes after the getattr either.  Either it'll
be exactly the same, or it'll be something else and wrong.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
fs/orangefs/inode.c
fs/orangefs/namei.c

index b47765e..a18205d 100644 (file)
@@ -460,12 +460,6 @@ struct inode *orangefs_new_inode(struct super_block *sb, struct inode *dir,
                goto out_iput;
 
        orangefs_init_iops(inode);
-
-       inode->i_mode = mode;
-       inode->i_uid = current_fsuid();
-       inode->i_gid = current_fsgid();
-       inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
-       inode->i_size = PAGE_SIZE;
        inode->i_rdev = dev;
 
        error = insert_inode_locked4(inode, hash, orangefs_test_inode, ref);
index c8676c9..87584d7 100644 (file)
@@ -76,8 +76,6 @@ static int orangefs_create(struct inode *dir,
 
        d_instantiate_new(dentry, inode);
        orangefs_set_timeout(dentry);
-       ORANGEFS_I(inode)->getattr_time = jiffies - 1;
-       ORANGEFS_I(inode)->getattr_mask = STATX_BASIC_STATS;
 
        gossip_debug(GOSSIP_NAME_DEBUG,
                     "%s: dentry instantiated for %pd\n",
@@ -291,8 +289,6 @@ static int orangefs_symlink(struct inode *dir,
 
        d_instantiate_new(dentry, inode);
        orangefs_set_timeout(dentry);
-       ORANGEFS_I(inode)->getattr_time = jiffies - 1;
-       ORANGEFS_I(inode)->getattr_mask = STATX_BASIC_STATS;
 
        gossip_debug(GOSSIP_NAME_DEBUG,
                     "Inode (Symlink) %pU -> %pd\n",
@@ -360,8 +356,6 @@ static int orangefs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode
 
        d_instantiate_new(dentry, inode);
        orangefs_set_timeout(dentry);
-       ORANGEFS_I(inode)->getattr_time = jiffies - 1;
-       ORANGEFS_I(inode)->getattr_mask = STATX_BASIC_STATS;
 
        gossip_debug(GOSSIP_NAME_DEBUG,
                     "Inode (Directory) %pU -> %pd\n",