devtmpfs: factor out common tail of devtmpfs_{create,delete}_node
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Wed, 15 Jan 2020 18:41:53 +0000 (19:41 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Jan 2020 14:28:15 +0000 (15:28 +0100)
There's some common boilerplate in devtmpfs_{create,delete}_node, put
that in a little helper.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Link: https://lore.kernel.org/r/20200115184154.3492-6-linux@rasmusvillemoes.dk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/devtmpfs.c

index 56632fb..5995c43 100644 (file)
@@ -89,6 +89,23 @@ static inline int is_blockdev(struct device *dev)
 static inline int is_blockdev(struct device *dev) { return 0; }
 #endif
 
+static int devtmpfs_submit_req(struct req *req, const char *tmp)
+{
+       init_completion(&req->done);
+
+       spin_lock(&req_lock);
+       req->next = requests;
+       requests = req;
+       spin_unlock(&req_lock);
+
+       wake_up_process(thread);
+       wait_for_completion(&req->done);
+
+       kfree(tmp);
+
+       return req->err;
+}
+
 int devtmpfs_create_node(struct device *dev)
 {
        const char *tmp = NULL;
@@ -113,19 +130,7 @@ int devtmpfs_create_node(struct device *dev)
 
        req.dev = dev;
 
-       init_completion(&req.done);
-
-       spin_lock(&req_lock);
-       req.next = requests;
-       requests = &req;
-       spin_unlock(&req_lock);
-
-       wake_up_process(thread);
-       wait_for_completion(&req.done);
-
-       kfree(tmp);
-
-       return req.err;
+       return devtmpfs_submit_req(&req, tmp);
 }
 
 int devtmpfs_delete_node(struct device *dev)
@@ -143,18 +148,7 @@ int devtmpfs_delete_node(struct device *dev)
        req.mode = 0;
        req.dev = dev;
 
-       init_completion(&req.done);
-
-       spin_lock(&req_lock);
-       req.next = requests;
-       requests = &req;
-       spin_unlock(&req_lock);
-
-       wake_up_process(thread);
-       wait_for_completion(&req.done);
-
-       kfree(tmp);
-       return req.err;
+       return devtmpfs_submit_req(&req, tmp);
 }
 
 static int dev_mkdir(const char *name, umode_t mode)