adb: correctly count skipped files in push/pull

Bug: http://b/25650207
Change-Id: I055b08216938640c4f7c5e96a7ea3719bf90ba70
diff --git a/adb/file_sync_client.cpp b/adb/file_sync_client.cpp
index e109e3e..320891d 100644
--- a/adb/file_sync_client.cpp
+++ b/adb/file_sync_client.cpp
@@ -552,11 +552,12 @@
         } else {
             if (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode)) {
                 sc.Error("skipping special file '%s'", lpath.c_str());
+                ci.skip = true;
             } else {
                 ci.time = st.st_mtime;
                 ci.size = st.st_size;
-                filelist->push_back(ci);
             }
+            filelist->push_back(ci);
         }
     }
 
@@ -723,8 +724,7 @@
     bool empty_dir = true;
 
     // Put the files/dirs in rpath on the lists.
-    auto callback = [&](unsigned mode, unsigned size, unsigned time,
-                        const char* name) {
+    auto callback = [&](unsigned mode, unsigned size, unsigned time, const char* name) {
         if (IsDotOrDotDot(name)) {
             return;
         }
@@ -735,12 +735,15 @@
         copyinfo ci = mkcopyinfo(lpath, rpath, name, mode);
         if (S_ISDIR(mode)) {
             dirlist.push_back(ci);
-        } else if (S_ISREG(mode) || S_ISLNK(mode)) {
-            ci.time = time;
-            ci.size = size;
-            filelist->push_back(ci);
         } else {
-            sc.Warning("skipping special file '%s'\n", name);
+            if (S_ISREG(mode) || S_ISLNK(mode)) {
+                ci.time = time;
+                ci.size = size;
+            } else {
+                sc.Warning("skipping special file '%s'\n", name);
+                ci.skip = true;
+            }
+            filelist->push_back(ci);
         }
     };