Ensure that time.h gets included. This fixes the following build error:
In file included from /usr/include/ntfs-3g/inode.h:35,
from /usr/include/ntfs-3g/attrib.h:33,
from src/system_compression.c:64:
/usr/include/ntfs-3g/ntfstime.h: In function 'ntfs_current_time':
/usr/include/ntfs-3g/ntfstime.h:125:22: error: implicit declaration of function 'time' [-Wimplicit-function-declaration]
125 | now.tv_sec = time((time_t*)NULL);
| ^~~~
Add __attribute__((packed)) to the on-disk reparse point structures to
avoid a compiler warning about a potential unaligned pointer when
casting a pointer to REPARSE_POINT (which is defined in
<ntfs-3g/layout.h> using __attribute__((packed))) to a pointer to
WOF_FILE_PROVIDER_REPARSE_POINT_V1.
This warning is probably a false positive since the REPARSE_POINT from
NTFS-3G should be aligned in practice. But we shouldn't assume that.
This change allows one ntfs_system_decompression_ctx to be reused for
all reads from a given open FUSE file. To make this possible, it was
necessary to update the decompression context to no longer hold a
reference to the open compressed stream.
Based on a proposal by Mikalai Ramanovich.