Whamcloud - gitweb
e2fsck: validate i_extra_size in ext4_fc_handle_inode
[tools/e2fsprogs.git] / e2fsck / util.c
index 425fe88..42740d9 100644 (file)
 #include <errno.h>
 #endif
 
-#ifdef HAVE_SYS_SYSCTL_H
-#include <sys/sysctl.h>
-#endif
-
 #include "e2fsck.h"
 
 extern e2fsck_t e2fsck_global_ctx;   /* Try your very best not to use this! */
@@ -123,7 +119,7 @@ void *e2fsck_allocate_memory(e2fsck_t ctx, unsigned long size,
        char buf[256];
 
 #ifdef DEBUG_ALLOCATE_MEMORY
-       printf("Allocating %u bytes for %s...\n", size, description);
+       printf("Allocating %lu bytes for %s...\n", size, description);
 #endif
        if (ext2fs_get_memzero(size, &ret)) {
                sprintf(buf, "Can't allocate %lu bytes for %s\n",
@@ -434,7 +430,16 @@ void print_resource_track(e2fsck_t ctx, const char *desc,
                log_out(ctx, "%s: ", desc);
 
 #define kbytes(x)      (((unsigned long long)(x) + 1023) / 1024)
-#ifdef HAVE_MALLINFO
+#ifdef HAVE_MALLINFO2
+       if (1) {
+               struct mallinfo2 malloc_info = mallinfo2();
+
+               log_out(ctx, _("Memory used: %lluk/%lluk (%lluk/%lluk), "),
+                       kbytes(malloc_info.arena), kbytes(malloc_info.hblkhd),
+                       kbytes(malloc_info.uordblks),
+                       kbytes(malloc_info.fordblks));
+       } else
+#elif defined HAVE_MALLINFO
        /* don't use mallinfo() if over 2GB used, since it returns "int" */
        if ((char *)sbrk(0) - (char *)track->brk_start < 2LL << 30) {
                struct mallinfo malloc_info = mallinfo();
@@ -775,7 +780,8 @@ void dump_mmp_msg(struct mmp_struct *mmp, const char *fmt, ...)
                       mmp->mmp_check_interval);
                printf("    mmp_sequence: %08x\n", mmp->mmp_seq);
                printf("    mmp_update_date: %s", ctime(&t));
-               printf("    mmp_update_time: %lld\n", mmp->mmp_time);
+               printf("    mmp_update_time: %lld\n",
+                      (long long) mmp->mmp_time);
                printf("    mmp_node_name: %.*s\n",
                       EXT2_LEN_STR(mmp->mmp_nodename));
                printf("    mmp_device_name: %.*s\n",
@@ -886,12 +892,6 @@ unsigned long long get_memory_size(void)
 # elif defined(CTL_HW_UINT)
        unsigned int size = 0;
 # endif
-# if defined(CTL_HW_INT64) || defined(CTL_HW_UINT)
-       size_t len = sizeof(size);
-
-       if (sysctl(mib, 2, &size, &len, NULL, 0) == 0)
-               return (unsigned long long)size;
-# endif
        return 0;
 #else
 # warning "Don't know how to detect memory on your platform?"