[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/busybox/src/util-linux/findfs.c b/ap/app/busybox/src/util-linux/findfs.c
new file mode 100644
index 0000000..49e8979
--- /dev/null
+++ b/ap/app/busybox/src/util-linux/findfs.c
@@ -0,0 +1,47 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Support functions for mounting devices by label/uuid
+ *
+ * Copyright (C) 2006 by Jason Schoon <floydpink@gmail.com>
+ * Some portions cribbed from e2fsprogs, util-linux, dosfstools
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+
+//usage:#define findfs_trivial_usage
+//usage: "LABEL=label or UUID=uuid"
+//usage:#define findfs_full_usage "\n\n"
+//usage: "Find a filesystem device based on a label or UUID"
+//usage:
+//usage:#define findfs_example_usage
+//usage: "$ findfs LABEL=MyDevice"
+
+#include "libbb.h"
+#include "volume_id.h"
+
+int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int findfs_main(int argc UNUSED_PARAM, char **argv)
+{
+ char *dev = *++argv;
+
+ if (!dev)
+ bb_show_usage();
+
+ if (strncmp(dev, "/dev/", 5) == 0) {
+ /* Just pass any /dev/xxx name right through.
+ * This might aid in some scripts being able
+ * to call this unconditionally */
+ dev = NULL;
+ } else {
+ /* Otherwise, handle LABEL=xxx and UUID=xxx,
+ * fail on anything else */
+ if (!resolve_mount_spec(argv))
+ bb_show_usage();
+ }
+
+ if (*argv != dev) {
+ puts(*argv);
+ return 0;
+ }
+ return 1;
+}