[patch 3/5] fuse: cleanup: add fuse_get_attr_version()

From: Miklos Szeredi
Date: Wed Oct 24 2007 - 07:16:26 EST


From: Miklos Szeredi <mszeredi@xxxxxxx>

Extract repeated code into helper function, as suggested by Akpm.

Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxx>
---

Index: linux/fs/fuse/dir.c
===================================================================
--- linux.orig/fs/fuse/dir.c 2007-10-19 16:46:33.000000000 +0200
+++ linux/fs/fuse/dir.c 2007-10-19 17:04:15.000000000 +0200
@@ -132,6 +132,21 @@ static void fuse_lookup_init(struct fuse
req->out.args[0].value = outarg;
}

+static u64 fuse_get_attr_version(struct fuse_conn *fc)
+{
+ u64 curr_version;
+
+ /*
+ * The spin lock isn't actually needed on 64bit archs, but we
+ * don't yet care too much about such optimizations.
+ */
+ spin_lock(&fc->lock);
+ curr_version = fc->attr_version;
+ spin_unlock(&fc->lock);
+
+ return curr_version;
+}
+
/*
* Check whether the dentry is still valid
*
@@ -171,9 +186,7 @@ static int fuse_dentry_revalidate(struct
return 0;
}

- spin_lock(&fc->lock);
- attr_version = fc->attr_version;
- spin_unlock(&fc->lock);
+ attr_version = fuse_get_attr_version(fc);

parent = dget_parent(entry);
fuse_lookup_init(req, parent->d_inode, entry, &outarg);
@@ -264,9 +277,7 @@ static struct dentry *fuse_lookup(struct
return ERR_PTR(PTR_ERR(forget_req));
}

- spin_lock(&fc->lock);
- attr_version = fc->attr_version;
- spin_unlock(&fc->lock);
+ attr_version = fuse_get_attr_version(fc);

fuse_lookup_init(req, dir, entry, &outarg);
request_send(fc, req);
@@ -733,9 +744,7 @@ static int fuse_do_getattr(struct inode
if (IS_ERR(req))
return PTR_ERR(req);

- spin_lock(&fc->lock);
- attr_version = fc->attr_version;
- spin_unlock(&fc->lock);
+ attr_version = fuse_get_attr_version(fc);

memset(&inarg, 0, sizeof(inarg));
memset(&outarg, 0, sizeof(outarg));

--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/