summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Jacke <bj@sernet.de>2010-06-07 23:06:28 +0200
committerBjörn Jacke <bj@sernet.de>2010-06-07 23:16:48 +0200
commit711a30aa61bb5f6a9b3970007bad8a70f411fb87 (patch)
treec868ccd73af342c689c72d971fdbe964f5b623c7
parent99c9e358c54b170b01e614483514026fddbd2688 (diff)
downloadsamba-711a30aa61bb5f6a9b3970007bad8a70f411fb87.tar.gz
samba-711a30aa61bb5f6a9b3970007bad8a70f411fb87.tar.bz2
samba-711a30aa61bb5f6a9b3970007bad8a70f411fb87.zip
s3: fix build on platforms without st_blocks and st_blksize stat struct members
This fixes bug 7474.
-rw-r--r--source3/lib/system.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/lib/system.c b/source3/lib/system.c
index 5aab4417a9..7859c61087 100644
--- a/source3/lib/system.c
+++ b/source3/lib/system.c
@@ -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;