diff --git a/include/ntfs-3g/param.h b/include/ntfs-3g/param.h index 4480eea8..5d96b1c2 100644 --- a/include/ntfs-3g/param.h +++ b/include/ntfs-3g/param.h @@ -44,7 +44,7 @@ enum { */ /* default option for compression */ -#define DEFAULT_COMPRESSION FALSE +#define DEFAULT_COMPRESSION 1 /* (log2 of) number of clusters in a compression block for new files */ #define STANDARD_COMPRESSION_UNIT 4 /* maximum cluster size for allowing compression for new files */ diff --git a/libntfs-3g/volume.c b/libntfs-3g/volume.c index ae7dee8c..a18109f1 100644 --- a/libntfs-3g/volume.c +++ b/libntfs-3g/volume.c @@ -54,6 +54,7 @@ #include #endif +#include "param.h" #include "compat.h" #include "volume.h" #include "attrib.h" @@ -501,6 +502,12 @@ ntfs_volume *ntfs_volume_startup(struct ntfs_device *dev, unsigned long flags) NVolSetShowSysFiles(vol); NVolSetShowHidFiles(vol); NVolClearHideDotFiles(vol); + /* set default compression */ +#if DEFAULT_COMPRESSION + NVolSetCompression(vol); +#else + NVolClearCompression(vol); +#endif if (flags & MS_RDONLY) NVolSetReadOnly(vol); diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c index 603ec823..a281da6f 100644 --- a/src/lowntfs-3g.c +++ b/src/lowntfs-3g.c @@ -3433,6 +3433,8 @@ static int ntfs_open(const char *device) NDevSetSync(ctx->vol->dev); if (ctx->compression) NVolSetCompression(ctx->vol); + else + NVolClearCompression(ctx->vol); #ifdef HAVE_SETXATTR /* archivers must see hidden files */ if (ctx->efs_raw) diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c index 73392483..8919761d 100644 --- a/src/ntfs-3g.c +++ b/src/ntfs-3g.c @@ -3350,6 +3350,8 @@ static int ntfs_open(const char *device) NDevSetSync(ctx->vol->dev); if (ctx->compression) NVolSetCompression(ctx->vol); + else + NVolClearCompression(ctx->vol); #ifdef HAVE_SETXATTR /* archivers must see hidden files */ if (ctx->efs_raw)