fs_stat: ignore quota fix caused by tree optimization

- tree optimization leads into quota fix which is not a real fix.
- Distinguish such case from real file system fix to get fs statistics
  correctly.
- This is only for correct fs stat metric collection. There is no
  functionality change in device side.
- Full parsing is only run when fs fix is detected from fs_stat.
  Examplt of fsck fix that will be ignored as optimization:
  e2fsck 1.43.3 (04-Sep-2016)
  Pass 1: Checking inodes, blocks, and sizes
  Inode 877141 extent tree (at level 1) could be shorter.  Fix? yes

  Pass 1E: Optimizing extent trees
  Pass 2: Checking directory structure
  Pass 3: Checking directory connectivity
  Pass 4: Checking reference counts
  Pass 5: Checking group summary information
  [QUOTA WARNING] Usage inconsistent for ID 10038:actual (71667712, 1000) != expected (71671808, 1000)
  Update quota info for quota type 0? yes

  [QUOTA WARNING] Usage inconsistent for ID 10038:actual (59555840, 953) != expected (59559936, 953)
  Update quota info for quota type 1? yes

  /dev/block/platform/soc/624000.ufshc/by-name/userdata: ***** FILE SYSTEM WAS MODIFIED *****
- also added unit test for the fsck log parsing

bug: 36391645
Test: many reboots with fs_stat check, runtest frameworks-services -c com.android.server.BootReceiverFixFsckFsStatTest
Change-Id: I86a97a3b50ee573db51d19d2cd243b8f7795a165
2 files changed