init: flush async file closing
[linux-2.6-block.git] / init / do_mounts.h
index 15e372b00ce704bc1b1e5db6514db3a4dcd654a4..6069ea3eb80d70106d6a8d8b3515d50176353206 100644 (file)
@@ -9,6 +9,8 @@
 #include <linux/major.h>
 #include <linux/root_dev.h>
 #include <linux/init_syscalls.h>
+#include <linux/task_work.h>
+#include <linux/file.h>
 
 void  mount_root_generic(char *name, char *pretty_name, int flags);
 void  mount_root(char *root_device_name);
@@ -41,3 +43,10 @@ static inline bool initrd_load(char *root_device_name)
        }
 
 #endif
+
+/* Ensure that async file closing finished to prevent spurious errors. */
+static inline void init_flush_fput(void)
+{
+       flush_delayed_fput();
+       task_work_run();
+}