init isn't built for platforms without dirent::d_type.

Change-Id: Icd4b431576f2ba619ff4ae6fb871bb0210d3b2f2
Merge "init isn't built for platforms without dirent::d_type."
When new error happend,then errno should be updated accordingly.
Otherwise, need to keep previous errno.

Reproduced steps:
pre-condition:
DUT support external SDcard or Usb mass storage;

1. Insert blank(no partition) SDcard or UMS to DUT;

Expected result:
Should prompt user with storage error.

Test result:
There is no notification for error.

Error log:
01-01 01:06:49.239 I/fsck_msdos( 200): fsck_msdos terminated by exit(8)
01-01 01:06:49.239 E/Vold ( 200): /dev/block/vold/179:16 failed FS checks (I/O error)
01-01 01:06:49.239 D/Vold ( 200): Volume sdcard1 state changing 3 (Checking) -> 1 (Idle-Unmounted)
01-01 01:06:49.239 W/Vold ( 200): Returning OperationFailed - no handler for errno 0)

Root cause analysis:
1.Volume::setState will call senBroadcase to send out state notification;
2.Finally, SocketClient::sendDataLockedv was called to sent message.
In sendDataLockedv funtion,  when current == iovcnt,  e is 0 by default.
So Vold get incorrect errno.

Change-Id: Icb32a4193f02f22b5e3feaba177bc278f8f1f41b
Signed-off-by: Bo Huang <bo.b.huang@intel.com>
Merge "When new error happend,then errno should be updated accordingly. Otherwise, need to keep previous errno."
Fix formatting in 4df4dfedf6beef891d05d4e80704f5f4a594a885.

Change-Id: I1ad219285cb1f4a39cfe2bdef224b78eff843317
Merge "Fix formatting in 4df4dfedf6beef891d05d4e80704f5f4a594a885."