fscrypt ENOKEY: ignore error and continue

Some files do not have a fscrypt key assigned to them when the fscrypt call is made to get the policy. Ignore the file when backing up in libtar.

Change-Id: I1054752ff332b27d0b3b1eeb288fdcc8112ab993
diff --git a/libtar/append.c b/libtar/append.c
index 3d17c0e..225ae1a 100755
--- a/libtar/append.c
+++ b/libtar/append.c
@@ -82,6 +82,7 @@
 	tar_dev_t *td = NULL;
 	tar_ino_t *ti = NULL;
 	char path[MAXPATHLEN];
+	int filefd;
 
 #ifdef DEBUG
 	LOG("==> tar_append_file(TAR=0x%p (\"%s\"), realname=\"%s\", "
@@ -303,6 +304,20 @@
 	if (t->options & TAR_VERBOSE)
 		LOG("%s\n", th_get_pathname(t));
 
+#if defined(O_BINARY)
+        filefd = open(realname, O_RDONLY|O_BINARY);
+#else
+        filefd = open(realname, O_RDONLY);
+#endif
+        if (filefd == -1)
+        {
+                if (errno == ENOKEY) {
+                        LOG("Required key not available, skipping file\n");
+			close(filefd);
+			return 0;
+                }
+        }
+	close(filefd);
 #ifdef DEBUG
 	LOG("tar_append_file(): writing header");
 #endif