[Devel] [PATCH RHEL7 COMMIT] fuse: Revert "fuse: set num_openers on create"

Konstantin Khorenko khorenko at virtuozzo.com
Mon Jul 9 17:32:50 MSK 2018


The commit is pushed to "branch-rh7-3.10.0-862.6.3.vz7.62.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-862.6.3.vz7.62.1
------>
commit 1afb64a2b072afc6d3914c0f096635005a26fe8a
Author: Kirill Tkhai <ktkhai at virtuozzo.com>
Date:   Mon Jul 9 17:32:50 2018 +0300

    fuse: Revert "fuse: set num_openers on create"
    
    This reverts commit 7fae2240955a0480e02f9b50147179ddeb344ba2.
    
    It's not need after "fuse kio: Read file attributes every first open".
    
    Reported-by: Pavel Putsykin <pbutsykin at virtuozzo.com>
    Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
 fs/fuse/dir.c    |  8 ++++----
 fs/fuse/fuse_i.h |  2 +-
 fs/fuse/inode.c  | 11 +++++------
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index 8dcad8b8c20e..03fe07260c13 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -322,7 +322,7 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name,
 
 	*inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
 			   &outarg->attr, entry_attr_timeout(outarg),
-			   attr_version, 0);
+			   attr_version);
 	err = -ENOMEM;
 	if (!*inode) {
 		fuse_queue_forget(fc, forget, outarg->nodeid, 1);
@@ -476,7 +476,7 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry,
 	ff->nodeid = outentry.nodeid;
 	ff->open_flags = outopen.open_flags;
 	inode = fuse_iget(dir->i_sb, outentry.nodeid, outentry.generation,
-			  &outentry.attr, entry_attr_timeout(&outentry), 0, 1);
+			  &outentry.attr, entry_attr_timeout(&outentry), 0);
 	if (!inode) {
 		flags &= ~(O_CREAT | O_EXCL | O_TRUNC);
 		fuse_sync_release(ff, flags);
@@ -610,7 +610,7 @@ static int create_new_entry(struct fuse_conn *fc, struct fuse_req *req,
 		goto out_put_forget_req;
 
 	inode = fuse_iget(dir->i_sb, outarg.nodeid, outarg.generation,
-			  &outarg.attr, entry_attr_timeout(&outarg), 0, 0);
+			  &outarg.attr, entry_attr_timeout(&outarg), 0);
 	if (!inode) {
 		fuse_queue_forget(fc, forget, outarg.nodeid, 1);
 		return -ENOMEM;
@@ -1372,7 +1372,7 @@ static int fuse_direntplus_link(struct file *file,
 		goto out;
 
 	inode = fuse_iget(dir->i_sb, o->nodeid, o->generation,
-			  &o->attr, entry_attr_timeout(o), attr_version, 0);
+			  &o->attr, entry_attr_timeout(o), attr_version);
 	if (!inode)
 		goto out;
 
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index c2b95d679b77..0314be536799 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -808,7 +808,7 @@ int fuse_inode_eq(struct inode *inode, void *_nodeidp);
  */
 struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			int generation, struct fuse_attr *attr,
-			u64 attr_valid, u64 attr_version, int creat);
+			u64 attr_valid, u64 attr_version);
 
 int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name,
 		     struct fuse_entry_out *outarg, struct inode **inode);
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 13571c9bce93..df7789a40ca4 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -266,11 +266,10 @@ void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr,
 	}
 }
 
-static void fuse_init_inode(struct inode *inode, struct fuse_attr *attr,
-			    int num_openers)
+static void fuse_init_inode(struct inode *inode, struct fuse_attr *attr)
 {
 	struct fuse_inode *fi = get_fuse_inode(inode);
-	atomic_set(&fi->num_openers, num_openers);
+	atomic_set(&fi->num_openers, 0);
 
 	inode->i_mode = attr->mode & S_IFMT;
 	inode->i_size = attr->size;
@@ -310,7 +309,7 @@ static int fuse_inode_set(struct inode *inode, void *_nodeidp)
 
 struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			int generation, struct fuse_attr *attr,
-			u64 attr_valid, u64 attr_version, int creat)
+			u64 attr_valid, u64 attr_version)
 {
 	struct inode *inode;
 	struct fuse_inode *fi;
@@ -327,7 +326,7 @@ struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
 			inode->i_flags |= S_NOCMTIME;
 		inode->i_generation = generation;
 		inode->i_data.backing_dev_info = &fc->bdi;
-		fuse_init_inode(inode, attr, 0);
+		fuse_init_inode(inode, attr);
 		unlock_new_inode(inode);
 	} else if ((inode->i_mode ^ attr->mode) & S_IFMT) {
 		/* Inode has changed type, any I/O on the old should fail */
@@ -851,7 +850,7 @@ static struct inode *fuse_get_root_inode(struct super_block *sb, unsigned mode)
 	attr.mode = mode;
 	attr.ino = FUSE_ROOT_ID;
 	attr.nlink = 1;
-	return fuse_iget(sb, 1, 0, &attr, 0, 0, 0);
+	return fuse_iget(sb, 1, 0, &attr, 0, 0);
 }
 
 struct fuse_inode_handle {


More information about the Devel mailing list