FS-Cache: Uninline fscache_object_init()
authorDavid Howells <dhowells@redhat.com>
Fri, 10 May 2013 18:50:25 +0000 (19:50 +0100)
committerDavid Howells <dhowells@redhat.com>
Wed, 19 Jun 2013 13:16:47 +0000 (14:16 +0100)
Uninline fscache_object_init() so as not to expose some of the FS-Cache
internals to the cache backend.

Signed-off-by: David Howells <dhowells@redhat.com>
Tested-By: Milosz Tanski <milosz@adfin.com>
Acked-by: Jeff Layton <jlayton@redhat.com>
fs/fscache/object.c
include/linux/fscache-cache.h

index 50d41c1..0133699 100644 (file)
@@ -363,7 +363,7 @@ unsupported_event:
 /*
  * execute an object
  */
-void fscache_object_work_func(struct work_struct *work)
+static void fscache_object_work_func(struct work_struct *work)
 {
        struct fscache_object *object =
                container_of(work, struct fscache_object, work);
@@ -379,7 +379,43 @@ void fscache_object_work_func(struct work_struct *work)
        clear_bit(FSCACHE_OBJECT_EV_REQUEUE, &object->events);
        fscache_put_object(object);
 }
-EXPORT_SYMBOL(fscache_object_work_func);
+
+/**
+ * fscache_object_init - Initialise a cache object description
+ * @object: Object description
+ * @cookie: Cookie object will be attached to
+ * @cache: Cache in which backing object will be found
+ *
+ * Initialise a cache object description to its basic values.
+ *
+ * See Documentation/filesystems/caching/backend-api.txt for a complete
+ * description.
+ */
+void fscache_object_init(struct fscache_object *object,
+                        struct fscache_cookie *cookie,
+                        struct fscache_cache *cache)
+{
+       atomic_inc(&cache->object_count);
+
+       object->state = FSCACHE_OBJECT_INIT;
+       spin_lock_init(&object->lock);
+       INIT_LIST_HEAD(&object->cache_link);
+       INIT_HLIST_NODE(&object->cookie_link);
+       INIT_WORK(&object->work, fscache_object_work_func);
+       INIT_LIST_HEAD(&object->dependents);
+       INIT_LIST_HEAD(&object->dep_link);
+       INIT_LIST_HEAD(&object->pending_ops);
+       object->n_children = 0;
+       object->n_ops = object->n_in_progress = object->n_exclusive = 0;
+       object->events = object->event_mask = 0;
+       object->flags = 0;
+       object->store_limit = 0;
+       object->store_limit_l = 0;
+       object->cache = cache;
+       object->cookie = cookie;
+       object->parent = NULL;
+}
+EXPORT_SYMBOL(fscache_object_init);
 
 /*
  * initialise an object
index 5dfa0aa..9b9c1de 100644 (file)
@@ -426,42 +426,8 @@ extern const char *fscache_object_states[];
        (test_bit(FSCACHE_IOERROR, &(obj)->cache->flags) &&     \
         (obj)->state >= FSCACHE_OBJECT_DYING)
 
-extern void fscache_object_work_func(struct work_struct *work);
-
-/**
- * fscache_object_init - Initialise a cache object description
- * @object: Object description
- *
- * Initialise a cache object description to its basic values.
- *
- * See Documentation/filesystems/caching/backend-api.txt for a complete
- * description.
- */
-static inline
-void fscache_object_init(struct fscache_object *object,
-                        struct fscache_cookie *cookie,
-                        struct fscache_cache *cache)
-{
-       atomic_inc(&cache->object_count);
-
-       object->state = FSCACHE_OBJECT_INIT;
-       spin_lock_init(&object->lock);
-       INIT_LIST_HEAD(&object->cache_link);
-       INIT_HLIST_NODE(&object->cookie_link);
-       INIT_WORK(&object->work, fscache_object_work_func);
-       INIT_LIST_HEAD(&object->dependents);
-       INIT_LIST_HEAD(&object->dep_link);
-       INIT_LIST_HEAD(&object->pending_ops);
-       object->n_children = 0;
-       object->n_ops = object->n_in_progress = object->n_exclusive = 0;
-       object->events = object->event_mask = 0;
-       object->flags = 0;
-       object->store_limit = 0;
-       object->store_limit_l = 0;
-       object->cache = cache;
-       object->cookie = cookie;
-       object->parent = NULL;
-}
+extern void fscache_object_init(struct fscache_object *, struct fscache_cookie *,
+                               struct fscache_cache *);
 
 extern void fscache_object_lookup_negative(struct fscache_object *object);
 extern void fscache_obtained_object(struct fscache_object *object);