include/util.h: prevent multiple inclusion of header

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
(cherry picked from commit 76eff9503493312cb97e4a2f9236f4dbcbf931df)
common: util: add get_fs_stats() function

simplifies the task of obtaining available/used disk space, as well as
used available percentage.

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit 3d74230d1c0fbfa15487e2a90ac60b883476e840)
mon: DataHealthService: use get_fs_stats() instead

and relieve the DataStats struct from clutter by using
ceph_data_stats_t instead of multiple fields.

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit 9996d446988768658db751a7843b13cf3d194213)

Conflicts:
	src/mon/DataHealthService.cc
ceph_mon: check available storage space for mon data dir on start

error out if available storage space is below 'mon data avail crit'

Fixes: #9502

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit 2da1a2914ac7df18ce842b0aac728fffb5bed2b6)

Conflicts:
	src/ceph_mon.cc
ceph-mon: check fs stats just before preforking

Otherwise statfs may fail if mkfs hasn't been run yet or if the monitor
data directory does not exist.  There are checks to account for the mon
data dir not existing and we should wait for them to clear before we go
ahead and check the fs stats.

Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit 7f71c11666b25e91dd612c58b4eda9ac0d4752f8)

Conflicts:
	src/ceph_mon.cc
Merge pull request #2656 from ceph/wip-9502-firefly

mon: backport mon disk full check to firefly

Reviewed-by: Samuel Just <sjust@redhat.com>