s3: fix build on platforms without st_blocks and st_blksize stat struct members
authorBjörn Jacke <bj@sernet.de>
Mon, 7 Jun 2010 21:06:28 +0000 (23:06 +0200)
committerBjörn Jacke <bj@sernet.de>
Mon, 7 Jun 2010 21:16:48 +0000 (23:16 +0200)
This fixes bug 7474.

source3/lib/system.c

index 5aab4417a9077829a6bafb2659ba3b9f08d221ad..7859c61087a2d8aa4e175a494b1fa2d4cd499e9d 100644 (file)
@@ -534,8 +534,17 @@ static void init_stat_ex_from_stat (struct stat_ex *dst,
        dst->st_ex_mtime = get_mtimespec(src);
        dst->st_ex_ctime = get_ctimespec(src);
        make_create_timespec(src, dst, fake_dir_create_times);
+#ifdef HAVE_STAT_ST_BLKSIZE
        dst->st_ex_blksize = src->st_blksize;
+#else
+       dst->st_ex_blksize = STAT_ST_BLOCKSIZE;
+#endif
+
+#ifdef HAVE_STAT_ST_BLOCKS
        dst->st_ex_blocks = src->st_blocks;
+#else
+       dst->st_ex_blocks = src->st_size % STAT_ST_BLOCKSIZE + 1;
+#endif
 
 #ifdef HAVE_STAT_ST_FLAGS
        dst->st_ex_flags = src->st_flags;